waibiwaibi11 2022-08-26 14:42 采纳率: 100%
浏览 22
已结题

关于水仙花数的问题,如何解决?

问题遇到的现象和发生背景

时间限制
2000 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
徐镜春(浙江大学)
水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:153 = 13 + 53+ 33。本题要求编写程序,计算所有N位水仙花数。

输入格式:

输入在一行中给出一个正整数N(3<=N<=7)。

输出格式:

按递增顺序输出所有N位水仙花数,每个数字占一行。

版权声明:本文为CSDN博主「coderstory」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fjinhao/article/details/46853171

问题相关代码,请勿粘贴截图

#include<stdio.h>
int main()
{
int number=1,N;

scanf("%d",&N);

int n=N,m=N;
//printf("%d%d",n,m);
while(N>1){
    number *=10;
    N--;}

//printf("%d",number);
int copy=number; 
int sum=0; 
int he=0;
while(number < 10*copy)
{//printf("%d \n",number);
    
    while(m>0)
    
        {
         int pian=number%10;
         int pian2=pian; 
        while(n>1)
            { pian2 *=pian;
            n--;
            }
        
     he += pian2;
    printf("%d",he);
    number %=10;
    m-- ;
        }
    sum +=he;
    if(sum==copy)
    {printf("%d\n",sum);
    }
    number++;
}

 
return 0;

}

我想要达到的结果

能帮我指出其中的错误

  • 写回答

2条回答 默认 最新

  • 於黾 2022-08-26 14:50
    关注

    代码写的够乱的
    1.在c语言中,每个块内,所有的定义必须在所有执行之前,你的scanf后面还有定义,语法就报错了
    2.你的程序能在自己电脑上运行了再往网上放
    编程90%的功夫在调试
    你不能遇到错误全靠猜呀
    3.你既然定义了n,m一堆变量,那好好的用起来呀
    为什么反复修改number的值
    看起来后面number好像++了,但是++之前前面还给它%=10了,这越变越小啊
    你这是个典型的死循环

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月3日
  • 已采纳回答 8月26日
  • 创建了问题 8月26日

悬赏问题

  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?