知识基础:
for(表达式1;表达式2;表达式3){若干语句}//for循环语句及其格式
思路:水仙花数为三位数,所以循环从100开始,到999结束,i为int型变量,所以i/100的值也是一个int型变量(整数)(注:C语言的取整不是四舍五入,是直接舍去小数),i/100就是百位上的数,i和100求余就是剩下的两位数,i%100之后再除以10同理会得到十位上的数,原数字再和10求余就是个位上的数
答案
#include<stdio.h> int main(){ int i; for(i=100;i<=999;i++){ if(i==(i/100)*(i/100)*(i/100)+((i%100)/10)*((i%100)/10)*((i%100)/10)+(i%10)*(i%10)*(i%10)) printf("%d\n",i); } return 0; }
注:程序结束return 0;不可省。
0.0分
109 人评分
#include<stdio.h> #include<math.h> int main() { int num,i,sum,sum1,sum2; for(num=100;num<=999;num++) { sum=num%10; sum1=num/10%10; sum2=num/100; if(pow(sum,3)+pow(sum1,3)+pow(sum2,3)==num) { printf("%d\n",num); } } return 0; }
#include <stdio.h> int main() { for(int a=1;a<10;a++) {for(int b=0;b<10;b++) {for(int c=0;c<10;c++) { if(a*100+b*10+c==a*a*a+b*b*b+c*c*c) printf("%d%d%d\n",a,b,c); } } } return 0; }
#include <stdio.h> #include <string.h> #include <math.h> int main(){ void pd(int x); int i=100; for(i;i<1000;i++){ pd(i); } return 0; } void pd(int x){ int i=0,y=0; int z=x; while(x!=0){ y=y+pow(x%10,3); x=x/10; } if(z==y) printf("%d\n",z); }
#include <stdio.h> #include <string.h> #include <math.h> int main(){ void pd(int x); int i=100; for(i;i<1000;i++){ //printf("%d\n",i); pd(i); //printf("%d\n",i); } return 0; } void pd(int x){ int i=0,y=0; //scanf("%d",&x); int z=x; while(x!=0){ if(1){ y=y+pow(x%10,3); x=x/10; } } if(z==y) printf("%d\n",z); }
keheia 2023-06-03 15:46:45 |
#include <stdio.h> #include <string.h> #include <math.h> int main(){ void pd(int x); int i=100; for(i;i<1000;i++){ pd(i); } return 0; } void pd(int x){ int i=0,y=0; int z=x; while(x!=0){ y=y+pow(x%10,3); x=x/10; } if(z==y) printf("%d ",z); }
以为是把个十百三个数打出来,看了才发现是打一个数,一开始是手动输入,才发现是要遍历所有的三位数,【笑哭】 #include<stdio.h> #include<math.h>//使用pow函数表示某个数的几次方,需要引入math头文件 int main() { for(int num=100;num<=999;num++){ //个位数 int g; g=num%10; //十位数 int s; s=(num%100)/10; //百位数 int b; b=num/100; //按要求判断 if((pow(g,3)+pow(s,3)+pow(b,3))==num){ printf("%d\n",num); } } return 0; system("pause"); }
写着写着才发现C的立方函数头文件忘了,就直接写了函数 #include<stdio.h> int Sn(int a); int main() { int a,b,c,d; for(int i=100;i<=999;i++) { a=(i/100); b=((i%100)/10); c=((i%100)%10); d=Sn(a)+Sn(b)+Sn(c); if(d==i) printf("%d \n",i); } return 0; } int Sn(int a) { return a*a*a; }
#include<stdio.h> #include<math.h> int main() { int num,bai=0,si=0,ge=0; for(num=100;num<999;num++) { bai=num/100; si=num%100/10; ge=num%10; if(num==(pow(bai,3)+pow(si,3)+pow(ge,3))) { printf("%d\n",num); } } return 0; }
#include<stdio.h> int main() { int i = 100; for (i; i <= 999; i++) { if (i==NumAdd(i)) printf("%d\n", i); } return 0; } int NumAdd(int i) { int sum = 0; for (int k = 0; k < 3; k++) { sum= sum+(i % 10)* (i % 10) * (i % 10); i = i / 10; } return sum; }
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:590 |
假币问题 (C++代码)(向上取整的一种处理方式)浏览:1801 |
C语言程序设计教程(第三版)课后习题9.1 (C++代码)浏览:610 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1152 |
C语言训练-斐波纳契数列 (C语言代码)浏览:3015 |
数组输出 (C语言代码)浏览:811 |
字符串对比 (C语言代码)浏览:1469 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:582 |
Tom数 (C语言代码)浏览:598 |
分糖果 (C语言代码)浏览:980 |