在跟同学的讨论中发现他用的另一种解法,将输入的整数循环求余,每次余出的数放到另外一个不断升位的变量中,这个方法貌似可行
#include <stdio.h>标签:return,C#,sum,converse,整数,二进制,int,printf,十进制 From: https://blog.51cto.com/leivzy/5878219
int converse(int n);//定义的函数
int main(void)
{
int n;
printf("输入一个十进制整数:");
scanf("%d", &n);
printf("对应的二进制整数:%d\n", converse(n));
return 0;
}
int converse(int n) //为了好看,函数体放后面了(并不觉得)
{
int r, p=1, sum=0;
while(1) {
r = n % 2;
n /= 2;
sum += r * p;
p *= 10;
if(n<2) {
sum += n * p;
break;
}
}
return sum;
}