CCF NOI1036 进制转换

2019-04-13 14:18发布

问题链接CCF NOI1036 进制转换


时间限制: 1000 ms  空间限制: 262144 KB
题目描述   模拟将任意给定的正整数n转换成对应的二进制数的过程:对于输入的任意正整数n,输出若干行“shang:* yu:*”的形式,表示其转换过程。
输入   输入正整数n。 输出   输出其转为二进制的过程(具体见样例)。 样例输入 13
样例输出 shang:6 yu:1
shang:3 yu:0
shang:1 yu:1
shang:0 yu:1

数据范围限制   1<=n<=5000


问题分析
  这是一个简单的计算商和余数的问题   这个程序的结果可以清楚看到进制转换的过程。
程序说明   (略)
要点详解 除(/)和取余数(%)运算是关键。使用宏定义可以增加程序的可阅读性和可修改性。程序需要的不是简洁,而是极其简洁。


参考链接:(略)。

100分通过的C语言程序: #include #define BASE 2 int main(void) { int n, r; scanf("%d", &n); while(n) { r = n % BASE; n /= BASE; printf("shang:%d yu:%d ", n, r); } return 0; }