51nod 1413 權勢二進位制

2021-07-16 21:21:51 字數 750 閱讀 1113

乙個十進位制整數被叫做權勢二進位制,當他的十進位制表示的時候只由0或1組成。例如0,1,101,110011都是權勢二進位制而2,12,900不是。

當給定乙個n的時候,計算一下最少要多少個權勢二進位制相加才能得到n。

input

單組測試資料。

第一行給出乙個整數n (1<=n<=1,000,000)

output

輸出答案佔一行。
input示例

9
output示例

9

一開始做這個我掏出了祖傳的dfs,但並沒有寫出來。

然後觀察資料,發現可以將所給的n的每一位都拿出來,然後找乙個跟n一樣長的權勢二進位制數,n的每一位如果大於1,這個二進位制數的那一位就等於1,否則等於0,然後這個數絕對是能以最小加到n的,然後n減去這個數,再重複這些步驟,就能算出來了。

**如下:

#include#include#include#includeusing namespace std;

#define n 300

#define inf 0xfffffff

int n,min;

int main()

r=n,j=1,q=0;

for(i=1;i<=len;i++)

n-=q;

cnt++;

}printf("%d\n",cnt);

return 0;

}

權勢二進位制(51Nod 1413)

乙個十進位制整數被叫做權勢二進位制,當他的十進位制表示的時候只由0或1組成。例如0,1,101,110011都是權勢二進位制而2,12,900不是。當給定乙個n的時候,計算一下最少要多少個權勢二進位制相加才能得到n。input 單組測試資料。第一行給出乙個整數n 1 n 1,000,000 outp...

51Nod 1413 權勢二進位制

乙個十進位制整數被叫做權勢二進位制,當他的十進位制表示的時候只由0或1組成。例如0,1,101,110011都是權勢二進位制而2,12,900不是。當給定乙個n的時候,計算一下最少要多少個權勢二進位制相加才能得到n。input 單組測試資料。第一行給出乙個整數n 1 n 1,000,000 outp...

51nod 1413 權勢二進位制

1413 權勢二進位制 codeforces 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 乙個十進位制整數被叫做權勢二進位制,當他的十進位制表示的時候僅僅由0或1組成。比如0,1,101,110011都是權勢二進位制而2,12,900不是。當給定乙個n的時候,...