1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 freopen("nums.in","r",stdin); 7 freopen("nums.out","w",stdout); 8 int a[1001],n; 9 cin>>n; 10 a[1]=1; 11 for(int s=2;s<=n;s++) 12 { 13 a[s]=0; 14 for(int i=1;i<=s/2;i++) 15 { 16 a[s]+=a[i]; 17 } 18 a[s]++; 19 } 20 cout<<a[n]; 21 return 0; 22 }
w 】數的計數(Noip2001)
w
【問題描述】
w我們要求找出具有下列性質數的個數(包括輸入的自然數n)。先輸入一個自然數n(n≤1000),然后對此自然數按照如下方法進行處理:
w不作任何處理;
w在它的左邊加上一個自然數,但該自然數不能超過原數的一半;
w加上數后,繼續按此規則進行處理,直到不能再加自然數為止。
w
輸入:自然數n(n≤1000)
w
輸出:滿足條件的數
w
【輸入樣例】
w 6 滿足條件的數為 6 (此部分不必輸出)
w 16
w 26
w 126
w 36
w 136
w
【輸出樣例】
w 6