C++編程基礎DAY8

18、編寫一個函數,確定一個正數是否爲完全數(一個數,等於除他自身以外的所有因子之和)。用這個函數確定和打印1到1000之間的所有完全數。

//編寫一個函數,確定一個正數是否爲完全數(一個數,等於他的因子之和)。
//用這個函數確定和打印1到1000之間的所有完全數。

#include<iostream>
#include<stdlib.h>

using namespace std;

int getFullnumber()
{
	int sum=0;
	for(int i=6; i<1000; i++)
	{
		for(int j=1; j<(i/2+1); j++)
		{
			if(i%j == 0) 
			{
				sum += j;
				//cout << j << " ";
			}
		}
		if(sum == i) 
		{
			cout << i << endl;
			//sum = 0;//sum放在這裏只有完全數纔會歸0,故錯誤
		}
		sum = 0;
	}
	return 0;
}

int main()
{
	getFullnumber();
	system("pause");
	return 0;
}

19、寫一函數,求斐波那契數列的第n項

//寫一函數,求斐波那契數列的第n項

#include<iostream>
#include<stdlib.h>

using namespace std;

int fibonacci(int n)
{
	//int f1, f2 , fn;
	if(n == 1 || n==2) return 1;
	//else if(n == 2) f2 = 1;
	else
	{
		return fibonacci(n-1) + fibonacci(n-2);
	}
	//return fn;
}

int main()
{
	int n;
	cin >> n;
	cout << fibonacci(n) << endl;
	system("pause");
	return 0;
}

題目來源:50道C++編程練習題及解答

總結

1、判斷一個數是否爲另一個數的因子可用求餘(%)判斷餘數是否爲0,if(i%j == 0);
2、遞歸的兩個必要條件:a.存在限制條件,當滿足這個條件時,遞歸便不再繼續。
b.每次遞歸調用之後越來越接近這個限制條件。參考鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章