初级算法——十进制转二进制(蓝桥杯)

这是进制转换中非常基础的一种题型。需要理解进制之间转换的规律。十进制转换成其他进制可以使用整除倒序取余法。其他进制转换成十进制各个位置乘以10进制相应的位权即可(如果是16进制,那么会出现字母,可以用整形来存储。字符串可以做加减运算,原理是ASCII码之间的运算)

下面的代码用的是递归,算法十分简易。因为是递归,所以遇到很大的数字时,可能出现内存上溢。

#include<stdio.h>

int fact(int n)
{
if(n < 2) //将2换成其他数字如8就可以变成十进制转八进制
return n;
else
return fact(n/2)*10+n%2;
}

int main()
{
int n;

printf("Enter n:");
scanf("%d",&n);
printf("%d",fact(n));

return 0;
}

猜你喜欢

转载自www.cnblogs.com/JAYPARK/p/9783250.html
今日推荐