P1028 數的計算

2022-05-07 06:00:06 字數 1058 閱讀 3849

拿n = 17舉個例子:

首先 17 肯定是答案之一  , ans = 1;

第二位可以放 1 ~ 8(構成117 、217 、 317 等等), ans = 1 + 8 = 9:

第三位可以放 1 ~ 4 ,但只能放特定的位置:

比如我在第三位放 1 ,那麼第二位是能是 2 ~ 8 

比如我在第三位放 3 ,那麼第二位是能是 6 ~ 8 

比如我在第四位放 1 ,那麼第三位只能是 2 ~ 4 , 滿足第三位是 2 ~ 4 的情況有 (8 - 4 + 1) + (8 - 6 + 1) + (8 - 8 + 1) = 9 種 , 所以最後一位為第四位且是1的情況數有 9種 

所以每次把當前位當成最後一位,算以j結尾的情況數。

#includeusing

namespace

std;

const

int maxn = 1e6 + 10

;#define ll long long

#define ios std::ios::sync_with_stdio(false)

#define int long long

intnum[maxn];

intnex[maxn];

signed main()

while(up / 2 >= 1

)

for(int i = 1 ; i <= up / 2 ; i ++)

up /= 2

; }

cout

<< ans << '\n'

;

return0;

}

view code

P1028 數的計算

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

P1028 數的計算

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

P1028 數的計算

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