洛谷 P1028 數的計算 題解 分析

2021-09-26 08:19:02 字數 881 閱讀 5985

由於洛谷的畫風超可愛qaq,我就不往過搬磚了,顯得醜,題目看原位址叭。題目鏈結在此

這是試煉場過程函式與遞迴的乙個簡單題,而我的遞推思路卻沒有能寫出來,這方面練的太少呀,我也意識到了這可是最最基礎的本領,所以還是多寫題(雖然都是很水的題)emmmm。

我們以6來舉例:

f[1] = 1

f[2] = 2 = f[1] + 1

f[3] = 2 = f[1] + 1

f[4] = 4 = f[1] + f[2] + 1

f[5] = 4 = f[1] + f[2] + 1

f[6] = 6 = f[1] + f[2] + f[3] + 1

對於6,左側可寫1、2、3, 形成16、26、36,只用分別管它們最左側的數左側可以加哪些數即可。仔細體會這個東東,對於乙個數,初始時,我們只需要管它左側可以放多少個?當然是n/2個,那對於這n/2個數,分別考慮它們左側可以放幾個?這樣,左側的數字越來越小,我們之前已經記錄過了,直接提取就行。你問我為什麼已經記錄過了?因為我們計算乙個數的結果,肯定是要從1開始,一直遞推到n的。

#include

#include

#include

#include

using namespace std;

typedef

long

long ll;

ll a[

1010];

int n;

intmain()

a[i]++;

// 記得每次它加上本身

} cout << a[n]

<< endl;

return0;

}

洛谷P1028數的計算題解 zhengjun

題目描述 我們要求找出具有下列性質數的個數 包含輸入的自然數n nn 先輸入乙個自然數n nn n 1000 n le 1000 n 1000 然後對此自然數按照如下方法進行處理 不作任何處理 在它的左邊加上乙個自然數,但該自然數不能超過原數的一半 加上數後,繼續按此規則進行處理,直到不能再加自然數...

洛谷P1028 數的計算 題解 動態規劃入門題

我們要求找出具有下列性質數的個數 包含輸入的自然數 n 先輸入乙個自然數 n n le 1000 然後對此自然數按照如下方法進行處理 不作任何處理 在它的左邊加上乙個自然數,但該自然數不能超過原數的一半 加上數後,繼續按此規則進行處理,直到不能再加自然數為止.1個自然數 n n le 1000 1個...

洛谷P1028 數的計算

我們要求找出具有下列性質數的個數 包含輸入的自然數n 先輸入乙個自然數n n 1000 然後對此自然數按照如下方法進行處理 1.不作任何處理 2.在它的左邊加上乙個自然數,但該自然數不能超過原數的一半 3.加上數後,繼續按此規則進行處理,直到不能再加自然數為止.輸入格式 乙個自然數n n 1000 ...