英文原文
Given a positive integer num
consisting only of digits 6 and 9.
Return the maximum number you can get by changing at most one digit (6 becomes 9, and 9 becomes 6).
Example 1:
Input: num = 9669 Output: 9969 Explanation: Changing the first digit results in 6669. Changing the second digit results in 9969. Changing the third digit results in 9699. Changing the fourth digit results in 9666. The maximum number is 9969.
Example 2:
Input: num = 9996 Output: 9999 Explanation: Changing the last digit 6 to 9 results in the maximum number.
Example 3:
Input: num = 9999 Output: 9999 Explanation: It is better not to apply any change.
Constraints:
1 <= num <= 10^4
num
's digits are 6 or 9.
中文题目
给你一个仅由数字 6 和 9 组成的正整数 num
。
你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。
请返回你可以得到的最大数字。
示例 1:
输入:num = 9669 输出:9969 解释: 改变第一位数字可以得到 6669 。 改变第二位数字可以得到 9969 。 改变第三位数字可以得到 9699 。 改变第四位数字可以得到 9666 。 其中最大的数字是 9969 。
示例 2:
输入:num = 9996 输出:9999 解释:将最后一位从 6 变到 9,其结果 9999 是最大的数。
示例 3:
输入:num = 9999 输出:9999 解释:无需改变就已经是最大的数字了。
提示:
1 <= num <= 10^4
num
每一位上的数字都是 6 或者 9 。
通过代码
高赞题解
解题思路
循环看看哪个6最靠前,然后加上3的x次幂即可
(4ms, 61.64%; 6.8MB, 100.00%)
代码
#include <Math.h>
int maximum69Number (int num){
int count = 0, th = 0; // count 记录除了多少次,th记录最大的6在第几位
int re = num;
while(re){
count++;
if(re%10==6)
th = count;
re /= 10;
}
return num+3*pow(10,th-1);
}
统计信息
通过次数 | 提交次数 | AC比率 |
---|---|---|
25423 | 33732 | 75.4% |
提交历史
提交时间 | 提交结果 | 执行时间 | 内存消耗 | 语言 |
---|