P1028 NOIP2001 普及組 數的計算

2021-10-16 09:14:41 字數 973 閱讀 2022

傳送門

我們要求找出具有下列性質數的個數(包含輸入的正整數 n)。

先輸入乙個正整數 n(0n≤1000),然後對此正整數按照如下方法進行處理:

不作任何處理;

在它的左邊加上乙個正整數,但該正整數不能超過原數的一半;

加上數後,繼續按此規則進行處理,直到不能再加正整數為止。

1個正整數 n(n≤1000)

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

輸入#1

1

6

輸出 #1

6
滿足條件的數為

6,16,26,126,36,136

【題目**】

noip 2001 普及組第一題

其實是有遞迴關係的,但是不用遞迴寫。其實可以發現,

1 -> 1

2 -> 2

3 -> 2

4 -> 4

5 -> 4

6 -> 6

在其中,6符合性質的數有 16 + 26 + 36,126(可視為2符合性質的數 即12 是 2 的性質數 ) + 136(可視為3符合性質的數 即13 是 3 的性質數)+ 6(本身)。所以6的性質數是1 2 3 的性質數之和,再加上自身,即加一。

#include

using

namespace std;

intmain()

; list[0]

=1; list[1]

=1; list[2]

=2; list[3]

=2;for

(int i =

4;i <= n;i++

) cout << list[n]

;return0;

}

P1028 NOIP2001 普及組 數的計算

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

P1028 NOIP2001 普及組 數的計算

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

P1028 NOIP2001 普及組 數的計算

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