原题链接: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()