杭电acm1197

本文介绍了一个C++程序,用于找出所有十进制、十六进制和十二进制下各位数字之和相等的四位数。通过循环遍历1000到9999之间的每个整数,并分别计算其在不同进制下的数字之和来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大体意思就是找一个四位数,如果它的十进制,十六进制,十二进制情况下,各位数相加相等,则输出

#include <iostream>
#include<stdio.h>

using namespace std;

int main(void)
{
    int dec_sum=0,hex_sum=0,duo_sum=0,dec_temp,hex_temp,duo_temp;

    for(int i=1000; i<10000; i++)
    {
        //计算十进制各位的和
        dec_temp=i;
        while(dec_temp!=0)
        {
            dec_sum+=dec_temp%10;
            dec_temp/=10;
        }
        //计算16进制各位的和
        hex_temp=i;
        while(hex_temp!=0)
        {
            hex_sum+=hex_temp%16;
            hex_temp/=16;

        }
        //计算12进制各位的和
        duo_temp=i;
        while(duo_temp!=0)
        {
            duo_sum+=duo_temp%12;
            duo_temp/=12;

        }

        //三种方式的和都相等就输出,注意不能写成dec_sum==hex_sum==duo_sum
        if(dec_sum==hex_sum&&hex_sum==duo_sum)
            cout<<i<<endl;
        //在最后必须重新清零
        dec_sum=0;
        hex_sum=0;
        duo_sum=0;
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值