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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP