初級算法——十進制轉二進制(藍橋杯)


這是進制轉換中非常基礎的一種題型。需要理解進制之間轉換的規律。十進制轉換成其他進制可以使用整除倒序取余法。其他進制轉換成十進制各個位置乘以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