洛谷1208數的計算

2021-09-11 09:07:08 字數 1423 閱讀 6863

題目描述(參考了兩位大佬,蒟蒻半原創 )

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

先輸入乙個自然數nnn(n≤1000n \le 1000n≤1000),然後對此自然數按照如下方法進行處理:

1>不作任何處理;

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

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

輸入格式:

1個自然數n(n≤1000)

輸出格式:

1個整數,表示具有該性質數的個數。

樣例:

input:6

output:6

樣例解釋:滿足條件的有6,16,26,126,36,136

#include

//方法一:暴力遞迴(數字大超時)

intfind

(int n)

;int count=1;

intmain

(void

)int

find

(int n)

return count;

}

模擬一下:

n=0, count=1; n=1, count=1;

n=2, count=2; n=3, count=2;

n=4, count=4; n=5, count=4;

n=6, count=6; n=7, count=6;

則:2n與2n+1數量相等

n=8時:

。。。。。。8

18 。。28 。。 38。。 48

。。。128 。。138。。148。。248 (像一棵樹~吧)

。。。。。。。。。。。。。。1248

以左邊三個支樹即48左下斷開,將8改為7即得到n=7時的結果:

。。。7

17。。27。。37 (6種)

。。。127。。137

剩下把8這個數去掉,like這樣:

。。4。。14。。24

。。。。。124(得到n=4時的情況)

綜上所述:

n%2==0

f[n]=f[n-1]+f[n/2] //8的種數=7的種數+4的種數

n%2==1

f[n]=f[n-1]

上最終**:

#include

intmain

(void

)else

}printf

("%d"

,f[n]);

}

總結:學會找規律

蒟蒻第一篇文章~

洛谷 1208 混合牛奶

由於乳製品產業利潤很低,所以降低原材料 牛奶 就變得十分重要。幫助marry乳業找到最優的牛奶採購方案。marry乳業從一些奶農手中採購牛奶,並且每一位奶農為乳製品加工企業提供的 是不同的。此外,就像每頭奶牛每天只能擠出固定數量的奶,每位奶農每天能提供的牛奶數量是一定的。每天marry乳業可以從奶農...

洛谷1028 數的計算

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

洛谷1028 數的計算

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