原题链接:C语言训练-"水仙花数"问题2
解题思路:
穷举出所有可能的情况:
由于是三位数,则第一位数不能是0(为0则是二位数) i范围1~9
注意事项:
参考代码:
#include <stdio.h>
#include <math.h>
int main()
{
for(int i=1; i<10; i++)
{
for(int j=0; j<10; j++)
{
for(int z=0; z<10; z++)
{
if(pow(i,3)+pow(j,3)+pow(z,3)==i*100+j*10+z)
{
printf("%d%d%d\n",i,j,z);
}
}
}
}
}0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
//pow()函数返回的是双精度的浮点型,容易出错,建议自己定义一个函数 #include "stdio.h" int fun(int x){ return x*x*x; } int main(){ for(int i=100;i<1000;i++){ int x=i/100; int y=i%100/10; int z=i%10%10; if(fun(x)+fun(y)+fun(z)==i) printf("%d\n",i); } return 0; }#include<stdio.h> int main() { int b1, b2,b3,n=99; for (; n < 999;) { n++; b1 = n / 100; b2 = (n - b1 * 100)/10; b3 = n - b1 * 100 - b2 * 10; if (b1 * b1 * b1 + b2 * b2 * b2 + b3 * b3 * b3 == n) printf("%d\n", n); } return 0; }