PAT Basic 1022. D进制的A+B (20)(C语言实现)
2017-05-18 23:45
766 查看
题目
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:
123 456 8
输出样例:
1103
思路
A、B和A+B的范围在32位整型的范围内,因此用int就好不需要担心。进制的转换也是很简单的,为了不使用数组,可以从最高位开始输出,这样就要先判断D进制下的位数。
代码
最新代码@github,欢迎交流 ^_^#include <stdio.h> int main() { int A, B, D, Sum; scanf("%d %d %d", &A, &B, &D); Sum = A + B; /* calculate the bits of Sum */ int power = 1; /* use Sum / D >= power to avoid using long int */ while(Sum / D >= power) power *= D; /* calculate D-base number. print them on-the-fly */ for(; power > 0; Sum %= power, power /= D) printf("%d", Sum / power); return 0; }
相关文章推荐
- PAT (Basic Level) Practise (中文)1022. D进制的A+B (20) C语言
- PAT (Basic Level) Practise (中文)1022. D进制的A+B (20)
- PATBasic——1022. D进制的A+B (20)
- PAT Basic 1034. 有理数四则运算(20)(C语言实现)
- PAT Basic 1018. 锤子剪刀布 (20)(C语言实现)
- PAT Basic 1004. 成绩排名 (20)(C语言实现)
- PAT Basic 1023. 组个最小数 (20)(C语言实现)
- PAT(Basic Level) 1022 D进制的A+B (20)
- PAT Basic 1028. 人口普查(20)(C语言实现)
- PAT Basic 1032. 挖掘机技术哪家强(20)(C语言实现)
- PAT (Basic Level) Practise (中文)- 1022. D进制的A+B (20)
- PAT(basic level) 1022 D进制的A+B(20)
- PAT Basic 1013. 数素数 (20)(C语言实现)
- PAT Basic 1033. 旧键盘打字(20)(C语言实现)
- PAT Basic 1002. 写出这个数 (20)(C语言实现)
- PAT Basic 1009. 说反话 (20)(C语言实现)
- PAT Basic 1012. 数字分类 (20)(C语言实现)
- PAT Basic 1007. 素数对猜想 (20) (C语言实现)
- PAT Basic Level 1022. D进制的A+B (20)
- PAT Basic 1038. 统计同成绩学生(20)(C语言实现)