P1028 NOIP2001 普及組 數的計算

2021-10-22 17:01:36 字數 826 閱讀 1432

題目描述

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

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

不作任何處理;

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

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

輸入格式

1 個正整數 n(n≤1000)

輸出格式

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

輸入輸出樣例

輸入 #1

輸出 #1

說明/提示

滿足條件的數為

6,16,26,126,36,136

【題目**】

noip 2001 普及組第一題

思路:設f[i]存放輸入為i時滿足條件的數,根據題目我們可以推斷第i個數肯定和之前的數有某種關係,於是我們令i=1,2,3時分別推出答案,發現要求第n個數,只需要把前面已經算出來的f[1]到f[n/2]的和再加上1(即它本身的情況),就是f[n]的答案。

上**

#include

using

namespace std;

int n;

long

long f[

1001];

long

long

cal(

int n1)

//計算1到n1的和

intmain()

printf

("%lld"

,f[n]);

return0;

}

P1028 NOIP2001 普及組 數的計算

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

P1028 NOIP2001 普及組 數的計算

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

P1028 NOIP2001 普及組 數的計算

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