一个十进制整数被叫做权势二进制,当他的十进制表示的时候只由0或1组成。例如0,1,101,110011都是权势二进制而2,12,900不是。
当给定一个n的时候,计算一下最少要多少个权势二进制相加才能得到n。
Input
Output
输出答案占一行。
Input示例
9
Output示例
9
所以就是求一个每一位对10取余的最大值。
#include <iostream> #include <cstdio> using namespace std; int main() { int n; scanf("%d",&n); int ans = 0; while(n) { int m = n%10; if(ans < m) ans = m; n /= 10; } cout<<ans<<endl; return 0; }
文章来源: 哼 又是被秀智商的一波 我服