再帰関数を使用して、10進数を2進数に変換します
【分析】
2で割り、剰余法を採用し、新しい被除数としての商を常に2で割ります。そのたびに、剰余のシーケンスが目的の2進数になります。
num == 0の場合、再帰フェーズが終了し、再帰が開始して戻ります。それ以外の場合は、商が新しい被除数として使用されます。つまり、関数が呼び出され、各レイヤーの残りが同時に出力されます。
コード:
#include<stdio.h>
#include <iostream>
void DectoBin(int num);
void main()
{
int n;
printf("请输入一个十进制整数:");
scanf("%d", &n);
printf("二进制数是:");
DectoBin(n);
printf("\n");
system("pause");
}
void DectoBin(int num)
{
if (num == 0)
return;
else
{
DectoBin(num / 2);
printf("%d", num % 2);
}
}
結果: