给定一个十进制的正整数n(0 < n < 1000),把这个十进制数转化为二进制数。
输入
有多组测试数据,每组测试数据输入只有一个正整数n。处理到文件结束(EOF)。
输出
对每组测试数,在单独的一行中输出对应的二进制数。
输入样例
1
2
3
输出样例
1
10
11
æè·¯ï¼åè¿å¶æ´æ°è½¬æ¢ä¸ºäºè¿å¶æ´æ°éç¨"é¤2åä½ï¼éåºæå"æ³ãå³ç¨2æ´é¤åè¿å¶æ´æ°ï¼å¯ä»¥å¾å°ä¸ä¸ªååä½æ°ï¼åç¨2å»é¤åï¼åä¼å¾å°ä¸ä¸ªååä½æ°ï¼å¦æ¤è¿è¡ï¼ç´å°å为0æ¶ä¸ºæ¢ï¼ç¶åæå å¾å°çä½æ°ä½ä¸ºäºè¿å¶æ°çä½ä½ææä½ï¼åå¾å°çä½æ°ä½ä¸ºäºè¿å¶æ°çé«ä½ææä½ï¼ä¾æ¬¡æåèµ·æ¥ã
åè代ç ï¼
#include "stdio.h"void fun(int n){
if(n==0) return;
fun(n/2);
printf("%d",n%2);
}
int main() {
int n;
scanf("%d",&n);
fun(n);
return 0;
}
/*
è¿è¡ç»æï¼ä¾å¦æ±10ç2è¿å¶
10
1010
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-09-02
#include <stdio.h>
void main()
{
int a;
scanf(\"%d\",&a);//输入一个10进制数。
int result=0;//存储a的二进制结果。
int p=1;//p=1表示个位数
do
{
int b=a%2;//b是余数,第一个余数是二进制的个位。
result=result+p*b;
p=p*10;//*10表示下个是10位数。
a=a/2;
}while(a);
printf(\"\\n%d\\n\",result);
}
程序在vc6.0下编译通过可以直接用,你自己看看吧,思路是a%2的结果是二进制的个位数,(a/2)%2的结果是二进制的十位数所以p扩大10倍,以后依次类推。本回答被提问者采纳
void main()
{
int a;
scanf(\"%d\",&a);//输入一个10进制数。
int result=0;//存储a的二进制结果。
int p=1;//p=1表示个位数
do
{
int b=a%2;//b是余数,第一个余数是二进制的个位。
result=result+p*b;
p=p*10;//*10表示下个是10位数。
a=a/2;
}while(a);
printf(\"\\n%d\\n\",result);
}
程序在vc6.0下编译通过可以直接用,你自己看看吧,思路是a%2的结果是二进制的个位数,(a/2)%2的结果是二进制的十位数所以p扩大10倍,以后依次类推。本回答被提问者采纳
第2个回答 2012-05-17
#include <stdio.h>
int main()
{
int num;
void fun(int num);
while(scanf("%d",&num)!=EOF)
{
fun(num);
printf("\n");
}
return 0;
}
void fun(int num)
{
if(num)
{
fun(num/2);
printf("%d",num%2);
}
}
int main()
{
int num;
void fun(int num);
while(scanf("%d",&num)!=EOF)
{
fun(num);
printf("\n");
}
return 0;
}
void fun(int num)
{
if(num)
{
fun(num/2);
printf("%d",num%2);
}
}
第3个回答 2021-05-01