进制转换(递归实现)

来源:互联网 发布:阿里云vpn搭建openvpn 编辑:程序博客网 时间:2024/06/05 11:37
Time Limit: 1sec    Memory Limit:256MBDescription输入一个非负的十进制整数,将其转为二进制.Input输入的第一行是一个整数T,表示总共有T组数据.接下来的T行,每行是一组数据,每组数据是一个待转换的十进制整数n(0<=n<2^31).Output对于每个十进制数,输出其对应的二进制数,每个数占一行. 注意输出的二进制数不要有多余的前导0.Sample Input Copy sample input to clipboard34120Sample Output100110100

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

#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;}
0 0
原创粉丝点击