杭电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/archive/2012/03/20/2408925.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值