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


这是进制转换中非常基础的一种题型。需要理解进制之间转换的规律。十进制转换成其他进制可以使用整除倒序取余法。其他进制转换成十进制各个位置乘以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;
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM