解题思路:
题目中的条件水仙花数是三位数,所以for()循环的时候i从100到999就好;
定义三个数a,b,c,分别放这个三位数的百位,十位,个位;
再用一个if语句判断a^3+b^3+c^3是否等于i,如果等于,输入i就好;
注意事项:
三位数各位的求法:
1、个位,直接对10取余;
2、十位,先对10取整得到十位和百的数,此时是一个两位数,再对10取余就得到十位;
3、百位,直接对100取整即可。
参考代码:
#include<stdio.h> int main() { int a,b,c,i; for(i=100; i<1000; i++){ a = i / 100; b = i / 10 % 10; c = i % 10; if(a*a*a + b*b*b + c*c*c == i) printf("%d ",i); } printf("\n"); return 0; }
0.0分
91 人评分
#include <stdio.h> int main() { int n,k,d,sum=0;//k暂时储存数据 d各位上的数据 for(n=100;n<=999;n++){ n=k; while(n){ d=n%10; n/=10; sum+=d*d*d; } if(k==sum) { printf("%d\n",k); } sum=0; } return 0; } 请问我这个 为什么会输出超限
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int a,b,c; int i=0; for(a=1;a<10;a++){ for(b=0;b<10;b++){ for(c=0;c<10;c++){ if(a*100+b*10+c == a*a*a+b*b*b+c*c*c){ printf("%d\n",a*100+b*10+c); } } } } return 0; }
#include<stdio.h> int main(void) { int i; int a,b,c; for(i=100;i<1000;i++) { a=i/100; b=i/10%10; c=i%10; if(a*a*a+b*b*b+c*c*c==i) printf("%d ",i); } return (0); }
#include<stdio.h> int main() { int i,a,b,c; for(i=100;i<1000;i++) { a=i/100; b=i/10%10; c=i%10; if(a*a*a+b*b*b+c*c*c==i) printf("%d",i); } printf("\n"); return 0; } 为什么我这个显示答案错误阿??
柠檬味的草莓 2018-07-11 10:49:00 |
#include<stdio.h> int main() { int i,a,b,c; for(i=100;i<=999;i++) { a=i/100; b=i%100/10; c=i%100%10; if(i==a*a*a+b*b*b+c*c*c) {printf("%d\n",i);} } return 0; }
Lkdna 2018-07-17 14:16:31 |
没错啊,你循环输出的时候加个空格区分一下
RickDong 2018-09-13 13:40:57 |
printf("%d",i);改为printf("%d ",i); 输出就隔开了
最小公倍数 (C语言代码)浏览:862 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:608 |
淘淘的名单 (C语言代码)答案错误???浏览:593 |
校门外的树 (C语言代码)浏览:956 |
printf基础练习2 (C语言代码)浏览:503 |
数组与指针的问题浏览:716 |
1071题解浏览:484 |
C二级辅导-统计字符 (C语言代码)浏览:476 |
C二级辅导-统计字符 (C语言代码)浏览:627 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:455 |
塔山镇中心小学谢全岗 2021-02-08 16:52:21 |
while(n){ d=n%10; n/=10; sum+=d*d*d; }这成死循环了吧