原题链接:[编程入门]水仙花数判断
知识基础:
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分
69 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
以为是把个十百三个数打出来,看了才发现是打一个数,一开始是手动输入,才发现是要遍历所有的三位数,【笑哭】 #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; }@苏沐橙 int main() { int i,j,k,a=0; for(i=0;i<=9;i++) { for(j=0;j<=9;j++) { for(k=0;k<=9;k++) { a=i*i*i+j*j*j+k*k*k; if((100>=a&&a<=999)&&(a==(i*100+j*10+k))); printf("%d ",a); } } } return 0; }#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; }返回1就是水仙花数,其他的自己写吧 char Check(int data) { int a = data / 100; int b = data % 100 / 10; int c = data % 10; if(pow(a ,3) + pow(b ,3) + pow(c ,3) == data) { return 1; } else { return 0; } }#include<stdio.h> #include<math.h> int main(void) { int a,b,c,d; for(a=100;a<1000;a++) { b=a/100; c=a/10%10; d=a%10; if(a==pow(b,3)+pow(c,3)+pow(d,3)) printf("%d\n",a); } return 0; }#include<stdio.h> #include<math.h> int main() { for(int i=100;i<=999;i++) { if(i==pow((i/100),3)+pow(((i/10)%10),3)+pow((i%10),3)) printf("%d\n",i); } return 0; }我用了4个for,,,可能是最笨的方法了 #include<stdio.h> int main() { int i, j, k, num; for(num=100; num<1000; num++) { for(i=1;i<=9;i++) { for(j=0; j<=9; j++) { for(k=0; k<=9; k++) { if(num==i*i*i+j*j*j+k*k*k&&num==i*100+j*10+k) printf("%d\n",num); } } } } return 0; }