乙個十進位制整數被叫做權勢二進位制,當他的十進位制表示的時候只由0或1組成。例如0,1,101,110011都是權勢二進位制而2,12,900不是。
當給定乙個n的時候,計算一下最少要多少個權勢二進位制相加才能得到n。
input
單組測試資料。
第一行給出乙個整數n (1<=n<=1,000,000)
output
輸出答案佔一行。
input示例
9 output示例
9 解題思路:
這個題目,其實這個題目就是求所有位數中最大的那個數,這個也是很難想到的。舉個例子:
9998可以由8個1111和1個1110得到:
5656可以由5個1111和1個101得到
5678可以由5個1111和1個111和1個11和1個1得到
所以就是求乙個每一位對10取餘的最大值。
my code:
#include #include usingnamespacestd;
int main()
int n;
scanf("%d",&n);
int ans = 0;
while(n)
int m = n%10;
if(ans < m)
ans = m;
n /= 10;
cout<
return0;
').addclass('pre-numbering').hide(); $(this).addclass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) ; $numbering.fadein(1700); }); });
以上就介紹了 51nod 1413 權勢二進位制(思維),包括了方面的內容,希望對其他程式設計教程有興趣的朋友有所幫助。
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 權勢二進位制
乙個十進位制整數被叫做權勢二進位制,當他的十進位制表示的時候只由0或1組成。例如0,1,101,110011都是權勢二進位制而2,12,900不是。當給定乙個n的時候,計算一下最少要多少個權勢二進位制相加才能得到n。input 單組測試資料。第一行給出乙個整數n 1 n 1,000,000 outp...