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日

悬赏问题

  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化