C++プログラム設計実験報告(二十七)---第二週任務一(カスタム関数は再帰思想、すなわち絶えず呼び出し、逆出力バイナリ)


第2週報告1:再帰関数の作成実験目的:再帰関数を習得し、十進法をバイナリ実験内容に変換する:カスタム関数は再帰思想、すなわち絶えず呼び出し、逆出力バイナリを用いる.
*プログラムヘッダコメント開始*プログラムの著作権とバージョン宣言部分*Copyright(c)2012、煙台大学コンピュータ学院学生*All rights reserved.*ファイル名:array.cpp*作者:劉鎮*完成日:2012年2月27日*バージョン番号:1.024
*タスクおよび解法の説明部*説明を入力:任意の10進数を入力
*問題の説明:10進数のカスタム関数を呼び出します.カスタムの問題を解決するだけで、カスタム関数には再帰が適用されます.*プログラム出力:バイナリ*プログラムヘッダのコメント終了
 
#include<iostream>

using namespace std;

void d2b(int n)
{
	if(n == 0)
	{
		cout << 0;
	}
	
	else
	{
		d2b(n / 2);
		
		cout << n % 2 ;
	}

	return;
	
}

int main()
{
	int a;
	
	cin >> a;
	
	d2b(a);
	
	return 0;
}

 
実行結果:
(1-2)
10進数を2進数に変換するには、文字配列を使用します.
*アルゴリズムの説明:
#include<iostream>

using namespace std;

int main()
{
	int x, a[50], k = 0, r;
	
	cout << "         :" << endl;
	cin >> x;

	do
	{
		r = x % 2;
		a[++k] = r;
		x = x / 2;

	}while(x != 0);

	for(; k > 0; --k)
	{
		cout << a[k];
	}

	cout << endl;
	
	return 0;
}

実行結果:
経験の蓄積:
1、再帰的に2を除いた残りの結果を逆順に出力する問題を巧みに解決した.
2、2種類を比較して、再帰はこの問題を解決するのにもっと適している.
上机感言:
休みは確かに忘れましたが、ブログを通じて引っ越しても確かにいくつかの内容を振り返ってくれました.