点击👇邮我
试题 算法训练 十进制转2进制输出
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
编写递归函数,实现将一个十进制的正整数以二进制的形式输出。
注:不考虑符号位,仅从二进制数不为0的最高位开始输出。
输入格式
一个十进制正整数
输出格式
该整数对应的二进制数
样例输入
一个满足题目要求的输入范例。
例:
96
样例输出
与上面的样例输入对应的输出。
例:
1100000
数据规模与约定
输入为正整数
代码
#include<stdio.h>
void f(int a){
if(a==0){//a为0时结束递归
return;
}
f(a>>1);//每次递归a右移一位,因为从高位开始输出所以先递归在输出
printf("%d",a&1);//a和1按位与,0得0,1得1
}
int main(){
int a;
scanf("%d",&a);
f(a);
return 0;
}