數的計算

1011 數的計算

 

2001年NOIP全國聯賽普及組

 時間限制: 1 s
 空間限制: 128000 KB
 題目等級 : 白銀 Silver
題目描述 Description

我們要求找出具有下列性質數的個數(包含輸入的自然數n):

先輸入一個自然數n(n<=1000),然後對此自然數按照如下方法進行處理:

1.          不作任何處理;

2.          在它的左邊加上一個自然數,但該自然數不能超過原數的一半;

3.          加上數後,繼續按此規則進行處理,直到不能再加自然數爲止.

輸入描述 Input Description

一個數n

輸出描述 Output Description

滿足條件的數的個數

樣例輸入 Sample Input

6

樣例輸出 Sample Output

6

數據範圍及提示 Data Size & Hint

6個數分別是:

6

16

26

126

36

136

#include <iostream>
using namespace std;
int s=1; 
void search(int n)
{
	int i;
	for(i=1;i<=n/2;i++)
	{
		s++;
		search(i);
		
		
	}
}
int main()
{
	int n;
	cin>>n;
	search(n);
	cout<<s;
	return 0;
}

利用遞歸,如果S不設置成全局變量,而是把它放在search函數裏,定義成int s=1,需要把for循環的內容改成s+=search(i);否則是錯誤的。原因好好思考一下就能明白。
發佈了43 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章