拿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結尾的情況數。
#includeusingview codenamespace
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;
}
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個整數,表示具有該性...