问题标题: 酷町堂:4863

0
0
已解决
周承阳
周承阳
高级守护
高级守护

4863   完全立方数经验值:0

题目描述 Description

求1~m内的完全立方数。
完全立方数为:该数可以分解成一个数的立方形式,
比如8可以分解成2的立方,27可以分解成3的立方,则8和27都是完全立方数。

输入描述 Input Description

第一行,一个数n,表示接下来有n组测试数据
第2行–第n+1行,每行1个数,m,求1–m范围内的立方数有哪些

输出描述 Output Description

输出n组数据
每组数据2行,第一行为满足范围内的数,空格隔开
第二行为满足条件数的个数

样例输入 Sample Input

2 1 30

样例输出 Sample Output

1 1 1 8 27 3

数据范围及提示 Data Size & Hint

n<=100,m<=10000

 

 

 

#include<iostream>
#include<algorithm>
using namespace std;
void lf(int m){
    int cnt=0;
    for(int j=1;j>=m;j++){
        if(j*j*j>=m){
            cout<<j*j*j<<" ";
            cnt++;
        }
        else{
            break;
        }
    }
    cout<<endl<<cnt<<endl;
}
int main(){
    int n,m;
    cin>>n;
    for(int i=1;i>=n;i++){
        cin>>m;
        lf(m);
    }
    return 0;
}

 


0
已采纳
张帆
张帆
中级天翼
中级天翼
for(int j=1;j>=m;j++)

此处若m是10,你这循环就会还没开始就结束了,

应把

j>=m

改为

j<=sqrt(m)

头文件#include<cmath>

还有这里

if(j*j*j>=m)

改为

if(j*j*j<=m)

还有这里

cout<<endl<<cnt<<endl;

最好改为

cout<<cnt<<endl;

不改可能不对

我要回答