杭电1197

题意:找出大于或等于2992的所有特殊的四位数,这种数字在十进制形式下的各位之和与八进制和十二进制的各位之和都相等。

 
Analyse:
考的明显是进制转换。若有一个整数a=b[n]*10^n+b[n-1]*10^(n-1)+……+b[1]*10+b[0],要转换成十进制,我们可以从它十进制形式的最后一位开始往前取,先对10取余,再整除10,再取余,再整除10……,一直做n次即可。
View Code
 1 #include<stdio.h>
2 main()
3 {
4 int temp,i,t,sum10,sum12,sum16;
5 for(i=1000;i<=9999;i++)
6 {
7 temp=i;
8 sum10=0;
9 for(t=0;t<4;t++)
10 {
11 sum10+=temp%10;
12 temp/=10;
13 }
14 temp=i;
15 sum12=0;
16 for(t=0;t<4;t++)
17 {
18 sum12+=temp%12;
19 temp/=12;
20 }
21 if(sum10==sum12)
22 {
23 temp=i;
24 sum16=0;
25 for(t=0;t<4;t++)
26 {
27 sum16+=temp%16;
28 temp/=16;
29 }
30 if(sum16==sum12)
31 printf("%d\n",i);
32 }
33 }
34 }
原文地址:https://www.cnblogs.com/ZShogg/p/2408925.html