浅汐ゞ 2023-04-08 16:55 采纳率: 100%
浏览 21
已结题

C语言进制各位数的和

#include<stdio.h>
int fun(int x,int r)
{int a=0;
while(x)
 {a+=x%r;
  x=x/r;
 }
 return a;
}
int main()
{int S1,S2,S3,i=0;
S1=S2=S3=0;
for(i=2992;i<=9999;i++)
{S1=fun(i,10);
 S2=fun(i,12);
 S3=fun(i,16);
 if(S1==S2&&S2==S3)
 printf("%d\n",i);}
return 0;
}

要求把输出2991到9999内十进制,十二进制和十六进制各个数的和相等的数,但我这个是输出结果是这样的

img

  • 写回答

2条回答 默认 最新

  • 个人练习生xx 2023-04-08 17:07
    关注

    你可以对比一下我的代码:

    #include <stdio.h>
    
    int sum_of_digits(int n, int base) {
        int sum = 0;
        while (n > 0) {
            sum += n % base;
            n /= base;
        }
        return sum;
    }
    
    int main() {
        int i;
        for (i = 2991; i <= 9999; i++) {
            int sum10 = sum_of_digits(i, 10);
            int sum12 = sum_of_digits(i, 12);
            int sum16 = sum_of_digits(i, 16);
            if (sum10 == sum12 && sum12 == sum16) {
                printf("%d\n", i);
            }
        }
        return 0;
    }
    
    
    

    输出结果为:
    2992
    2993
    2994
    2995
    2996
    2997
    2998
    2999
    3555
    3661
    3772
    3883
    3994
    4888
    4999
    5561
    5572
    5583
    5594
    5662
    5673
    5684
    5695
    5885
    5896
    5999

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

报告相同问题?

问题事件

  • 系统已结题 4月24日
  • 已采纳回答 4月16日
  • 创建了问题 4月8日

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line