HDU1197特殊的四位数(题解)

该博客介绍了如何解决一个编程问题,即找出所有四位数,其在十进制、十二进制和十六进制表示下,各位数字的和相等。通过遍历并检查每个四位数,博主提供了解题思路和AC代码,并给出了部分满足条件的数字示例。
摘要由CSDN通过智能技术生成

原题链接:HDU1197
问题描述
查找并列出所有以十进制表示法表示的四位数字,这些四位数字具有以下特性:当以十六进制(以16为基数)表示时,其四位数之和等于其数字总和;而以十二进制表示时,其四位数也等于其数字的总和(以12为基数的符号。

例如,数字2991的(十进制)数字之和为2 + 9 + 9 + 1 =21。由于2991 = 1 * 1728 + 8 * 144 + 9 * 12 + 3,其十二进制表示为1893(12),这些数字也总计为21。但是在16进制2991中是BAF16,而11 + 10 + 15 = 36,因此程序应拒绝2991。

但是,下一个数字(2992)在所有三个表示形式中的数字总和为22(包括BB016),因此2992应该在列出的输出上。(我们不希望使用少于四位数的十进制数字(不包括前导零),因此2992是第一个正确答案。)

输入值
没有针对此问题的输入。

输出量
您的输出将为2992,并且所有满足要求的大四位数(严格按升序排列)均在单独的行上,没有前导或尾随空格,以换行符结尾。输出中不得有空行。输出的前几行如下所示。

样本输入
没有针对此问题的输入。

样本输出
2992
2993
2994
2995
2996
2997
2998
2999
解题思路
题目大意:输出所有十进制、十二进制、十六进制各位数字加起来相等的四位数。
思路:for循环,求出十进制、十二进制、十六进制各位数字加起来的结果,判断是否相等,相等输出。
AC代码:

#include<stdio.h>
int main()
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值