C 语言水仙花数,跑出来了,救命!!!

这里是我原来错误的语言,留下来做个纪念吧

int n;
    printf("Please give a number show the bit:");
    scanf("%d",&n);
    int i = pow(10,n-1), j = pow(10,n)-1, k, c;
    printf("%d %d \n",i,j);
    for (k=i;k<=j;k++){
        int sum = 0;
        c=k;//用c变量暂时储存k,用于下面分解这个数的运算;这样就不会破坏for循环
        // 我们现在要check一下这个数字是不是水仙花数,如果k=各个位数的平方的和就是,所以需要把位数分解出来
        while(c>0){
             c %= 10; //求余数
             sum += pow(c,3);
//             printf("%d %d ",c,sum);
        }
        if(sum==k){
            printf("%d 位的水仙花数字有 %d \n",n,k);
        }
    }
    
    return 0;

这里是修改过后的语言,大家可以给我一些建议么:

    // question 2:水仙花数
    int n;
    printf("Please give a number show the bit:");
    scanf("%d",&n);
    int i = pow(10,n-1), j = pow(10,n)-1, k, c;
    printf("%d %d \n",i,j);
    for (k=i;k<=j;k++){
        int sum = 0, t;
        c=k;//用c变量暂时储存k,用于下面分解这个数的运算;这样就不会破坏for循环
        // 我们现在要check一下这个数字是不是水仙花数,如果k=各个位数的平方的和就是,所以需要把位数分解出来
        while(c>0){
             t = c % 10;
             c /= 10; //求余数
             sum += pow(t,3);  //把每一位上的数字加起来
//             printf("%d %d ",c,sum);
        }
        if(sum==k){
            printf("%d 位的水仙花数字有 %d \n",n,k);
        }
    }
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值