題目描述(參考了兩位大佬,蒟蒻半原創 )
我們要求找出具有下列性質數的個數(包含輸入的自然數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.加上數後,繼續按此規則進行處理,直到不能再加自然數為止.輸入輸出格式 輸入格式 乙個...