1. 程式人生 > 其它 >C++基礎習題(遞迴程式)

C++基礎習題(遞迴程式)

技術標籤:C++習題c++

有三個比較基礎的遞迴題
①編寫一遞迴程式實現任意正整數向八進位制數的轉換

#include <iostream>
using namespace std;

int zhuan(int n);

int main(void)
{
	int n;
	cout << "請輸入一個十進位制數" << endl;
	cin >> n;
	zhuan(n);
	return 0;
}

int zhuan(int n)
{
	if (n / 8 >1)
	{
		zhuan(n / 8);
	}
	cout <<
n % 8; return 0; }

②編寫遞迴函式,計算勒讓德多項式的值
在這裡插入圖片描述

#include <iostream>
using namespace std;

double result_le(double x, int n);

int main()
{
	double x;
	double n;

	cout << "inputx,n" << endl;
	cin >> x >> n;

	cout << "勒讓德多項式的值為" << result_le(x, n)
<< endl; } double result_le(double x, int n) { double result; if (n < 0) { cout << "error" << endl; return -1; } if (n == 0) { return 1; } if (n == 1) { return x; } else { result = ((2 * n - 1) * x - result_le(x, n - 1) - (n - 1) * result_le(x, n -
2)) / n; return result; } }

③用遞迴函式做,輸入一個整數,輸出各個位

 #include <iostream>
using namespace std;

void print_int(int num);

int main()
{
	int num;

	cout<<"please input num"<<endl;
	cin>>num;

	print_int(num);
	return 0;
}

void print_int(int num)
{
	if(num<0)
	{
		cout<<"data error!"<<endl;
		return;
	}
	else
	{
		if(num<10)
		{
			cout<<num<<endl;
		}
		else
		{
			print_int(num/10);
			cout<<num%10;//輸出和遞迴呼叫的順序調整之後輸出由倒序變為正序;語句在遞迴呼叫的後面時,按照逆序執行,比如123;
			cout<<endl;   //123先被存放在站的後面
		}
	}
}