#include<stdio.h> #include<math.h> int main() { int num=0; int sum=0; int n=0; scanf("%d",&n); for(int count=1;count<1000;count*=10) { for(int i=1;i<=n;i++) { if(i>9) { num=i/count%10; sum=sum+pow(num,3); } else sum=sum+pow(i,3); if(sum==i) { printf("%d",sum); } } } }哪里错误了
时间: 2024-02-15 08:13:57 浏览: 142
#include <stdio.h>
4星 · 用户满意度95%
您的代码中存在一些错误:
1. 在计算 `num` 的时候应该是 `num=i/count%10;`,而不是 `num=count/i%10;`。
2. 您的循环逻辑有误,对于每个数,需要将 `sum` 重新置为 0。
以下是修改后的代码:
```
#include <stdio.h>
#include <math.h>
int main() {
int n = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
int sum = 0;
for (int count = 1; count <= i; count *= 10) {
int num = i / count % 10;
sum += pow(num, 3);
}
if (sum == i) {
printf("%d ", sum);
}
}
return 0;
}
```
希望对您有所帮助!
阅读全文