水仙花数
一、问题描述:

二、设计思路:
把个位十位百位求出来,分别三次方后求和就行,pow函数的运用记住了,好做

三、程序流程图:

四、代码实现;
#include<stdio.h> #include<windows.h> #include<math.h> int main() { //system("shutdown -r"); int n,a[3],i,m=0; for(n=100;n<1000;n++) { int k=n;m=0; for( i=0;k;i++) { a[i]=k%10; k/=10; } for(;i>=0;i--) { m+=pow(a[i],3); } if(n==m) { printf("%d\n",n); } } return 0; }

#include<stdio.h> #include<math.h> int main() { int n; for(n=100;n<1000;n++) { int ge=n%10; int shi=n/10%10; int bai=n/100%10; if(n==pow(ge,3)+pow(shi,3)+pow(bai,3)) { printf("%d\n",n); } } return 0; }

我个人比较喜欢第一个代码,建议你务必运行一下第一个代码,真不错,也是跟着天宇躺平的一天,李天宇 20:00:14
for(;i>=0;i--)这里i>=0
int k=n;m=0;每次对k操作
初始化m=0
这是我的代码跑不出来的三个问题,记住了,要转存n的地址不能之间操作,然后每次实现完一个数要重新赋值为0

浙公网安备 33010602011771号