C++程序:计算表示n所需最小二进制数字个数
假设我们有一个数字n。如果一个正整数的所有位数都是0或1,则称其为二进制十进制数。例如,1001(一千零一)是二进制十进制数,而1021不是。从数字n出发,我们必须将n表示为一些(不一定不同)二进制十进制数的和。然后计算为此所需的最小二进制十进制数的个数。
因此,如果输入为n = 121,则输出为2,因为它可以表示为110 + 11或111 + 10。
步骤
为了解决这个问题,我们将遵循以下步骤:
ans := -1 while n > 0, do: ans := maximum of ans and (n mod 10) n := n / 10 return ans
示例
让我们来看下面的实现以更好地理解:
#include <bits/stdc++.h> using namespace std; int solve(int n) { int ans = -1; while (n > 0) { ans = max(ans, n % 10); n /= 10; } return ans; } int main() { int n = 121; cout << solve(n) << endl; }
输入
121
输出
2
广告