水仙花数

一、问题描述:

 

二、设计思路:

     把个位十位百位求出来,分别三次方后求和就行,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

 

posted @ 2023-05-09 23:15  软件拓荒人  阅读(58)  评论(0)    收藏  举报