CCF NOI1036 进制转换
问题链接: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 <stdio.h> #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", n, r); } return 0; }