OJ刷题----[算法课贪婪]6和9组成的最大数字
一、题目
给你一个仅由数字6和9组成的正整数 num。
你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。
请返回你可以得到的最大数字。
①1 <= num <= 10000,即最多4位数
②num 每一位上的数字都是 6 或者 9
输入:
一个整数
输出:
一个整数的最大值
例如:
输入:6999
输出:9999
二、解题思路:
将最左边的6变成9即可。
三、代码
#include<iostream>
using namespace std;
class Solution {
public:
int max(int num)
{
int n = 0;
int k = 1000;
while (num != 0)
{
if (num / k == 6)
{
n += 9 * k + num % k;
break;
}
else if (num / k == 0)
{
num = num % k;
k /= 10;
}
else
{
n += 9 * k;
num = num % k;
k /= 10;
}
}
return n;
}
};
int main()
{
Solution sol;
int num;
cin >> num;
cout << sol.max(num) << endl;
}
参考链接:
参考学习链接