您的位置:首页 > 其它

进制转换(递归实现)

2015-11-16 14:23 204 查看
Time Limit: 1sec    Memory Limit:256MB
Description
输入一个非负的十进制整数,将其转为二进制.

Input
输入的第一行是一个整数T,表示总共有T组数据.

接下来的T行,每行是一组数据,每组数据是一个待转换的十进制整数n(0<=n<2^31).

Output
对于每个十进制数,输出其对应的二进制数,每个数占一行. 注意输出的二进制数不要有多余的前导0.

Sample Input
Copy sample input to clipboard
3
4
1
20
Sample Output
100
1
10100


此题为二进制用递归实现的标准算法。

#include <stdio.h>
void base2(int n) {
if (n == 1) {
printf("%d", n);
} else {
base2(n / 2);
printf("%d", n % 2);
}
}
int main() {
int n, i;
scanf("%d", &i);
for (int k = 0; k < i; k++) {
scanf("%d", &n);
base2(n);
printf("\n");//注意不能在递归函数中换行!
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: