乙個十進位制整數被叫做權勢二進位制,當他的十進位制表示的時候只由0或1組成。例如0,1,101,110011都是權勢二進位制而2,12,900不是。
當給定乙個n的時候,計算一下最少要多少個權勢二進位制相加才能得到n。
input
單組測試資料。output第一行給出乙個整數n (1<=n<=1,000,000)
輸出答案佔一行。input示例
9output示例
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的時候,...