m0_59175254 2022-06-24 20:18 采纳率: 100%
浏览 56
已结题

在线求解输出一定范围内的水仙花数的问题

在处理下面这个问题时,我写下了这段代码,运行输入整数5后无任何返回值。
而正常情况应该是输入5之后,会得到10000-99999的所有水仙花数。

/*水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。
要求编写程序,计算所有的N位水仙花数。
输入在一行中给出一个正整数N(3<=N<=7)。
按递增顺序输出所有N位水仙花数,每个数字占一行。
*/
#include<stdio.h>
int main(){

int n;
printf("请输入一个正整数:");
scanf("%d",&n);
int i;
int first=1;
int b;
int sum=0;
int c;

for(i=1;i<n;i++){
    first*=10;
}
i=first;
while(i<first*10){
    c=i;
    while(c>0){
        b=c%10;
        int s=1;
        int p=b;
        while(s<n){
            p*=b;
            s++;
        }
        sum+=p;
        c/=10;
    }
    if(sum==i){
        printf("%d\n",i);
    }i++;
}
return 0;

zhouxin@zhouxindeMacBook-Pro C % cd "/Users/zhouxin/Desktop/C/" && gcc 水仙花数.c -o 水仙花数 && "/Users/zhouxin/Deskto
p/C/"水仙花数
请输入一个正整数:5
zhouxin@zhouxindeMacBook-Pro C %

  • 写回答

1条回答 默认 最新

  • ...404 Not Found 2022-06-24 20:35
    关注

    你sum每次不初始化为0吗,你从一开始就一直累加sum肯定不等

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月2日
  • 已采纳回答 6月24日
  • 修改了问题 6月24日
  • 创建了问题 6月24日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改