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日

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路