hdoj 1197
来源:互联网 发布:seo主管岗位职责 编辑:程序博客网 时间:2024/06/16 01:59
Specialized Four-Digit Numbers
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 7467 Accepted Submission(s): 5498
Problem Description
Find and list all four-digit numbers in decimal notation that have the property that the sum of its four digits equals the sum of its digits when represented in hexadecimal (base 16) notation and also equals the sum of its digits when represented in duodecimal (base 12) notation.
For example, the number 2991 has the sum of (decimal) digits 2+9+9+1 = 21. Since 2991 = 1*1728 + 8*144 + 9*12 + 3, its duodecimal representation is 1893(12), and these digits also sum up to 21. But in hexadecimal 2991 is BAF16, and 11+10+15 = 36, so 2991 should be rejected by your program.
The next number (2992), however, has digits that sum to 22 in all three representations (including BB016), so 2992 should be on the listed output. (We don’t want decimal numbers with fewer than four digits - excluding leading zeroes - so that 2992 is the first correct answer.)
Input
There is no input for this problem.
Output
Your output is to be 2992 and all larger four-digit numbers that satisfy the requirements (in strictly increasing order), each on a separate line with no leading or trailing blanks, ending with a new-line character. There are to be no blank lines in the output. The first few lines of the output are shown below.
Sample Input
There is no input for this problem.
Sample Output
2992
2993
2994
2995
2996
2997
2998
2999
转换判断即可,贴一段自己认为很简洁的代码
AC代码(C++)
#include<iostream>using namespace std;int main(){ int i; int thousand[3],hundred[3],ten[3],num[3],sum[3];//分别表示四个位 for(i=1000;i<10000;i++){ thousand[0]=i/1000; hundred[0]=i/100-10*thousand[0]; ten[0]=(i%100)/10; num[0]=i%10; thousand[1]=i/1728; hundred[1]=i/144-12*thousand[1]; ten[1]=(i%144)/12; num[1]=i%12; thousand[2]=i/4096; hundred[2]=i/256-16*thousand[2]; ten[2]=(i%256)/16; num[2]=i%16; sum[0]=thousand[0]+hundred[0]+ten[0]+num[0]; sum[1]=thousand[1]+hundred[1]+ten[1]+num[1]; sum[2]=thousand[2]+hundred[2]+ten[2]+num[2]; if(sum[0]==sum[1]&&sum[0]==sum[2]) cout<<i<<endl; } }
- hdoj 1197
- HDOJ
- hdoj
- hdoj
- HDOJ
- 【HDOJ】1197 -> Specialized Four-Digit Numbers
- hdoj 1197 Specialized Four-Digit Numbers
- hdoj.1197 Specialized Four-Digit Numbers 20140815
- hdoj 1197 Specialized Four-Digit Numbers
- HDOJ 1197 Specialized Four-Digit Numbers
- hdoj-1197-Specialized Four-Digit Numbers
- HDOJ 1197 Specialized Four-Digit Numbers
- HDOJ 1197 Specialized Four-Digit Numbers
- hdoj 1568 && hdoj 5344 && hdoj 5444
- 进制问题之 Specialized Four-Digit Numbers hdoj 1197
- hdoj 1197 specialized four-digit numbers(水)
- HDOJ 1197 Specialized Four-Digit Numbers 特别的四位数
- HDOJ 2176
- 解题报告:Codeforces Round #142 (Div. 1) C. Triangles (思维好题)
- JS获取当前年份月
- Codeforces Round 428 div2 A-C
- python中 正则表达式匹配一个反斜杠 ‘\’
- 拒接电话流程分析
- hdoj 1197
- hadoop 完全分布式环境搭建
- 大明A+B HDU
- OSI7层模型与TCP/IP协议栈4层
- java Math类
- 文件I/O与标准I/O
- 用开源代码构建机器人需要考虑的问题
- JavaScript中引用类型详解
- walle web部署系统工具踩坑