注意一下,前导0,的情况即可,大于5就搞出来,用字符串来搞。
Description
Luke Skywalker gave Chewbacca an integer number x. Chewbacca isn't good at numbers but he loves inverting digits in them. Inverting digit t means replacing it with digit 9 - t.
Help Chewbacca to transform the initial number x to the minimum possible positive number by inverting some (possibly, zero) digits. The decimal representation of the final number shouldn't start with a zero.
Input
The first line contains a single integer x(1 ≤ x ≤ 1018) — the number that Luke Skywalker gave to Chewbacca.
Output
Print the minimum possible positive number that Chewbacca can obtain after inverting some digits. The number shouldn't contain leading zeroes.
Sample Input
27
22
4545
4444
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<string>
#include<string.h>
using namespace std;
string str1;
//string str2;
int main()
{
cin>>str1;
int len = str1.length();
// for(int i = 0 ; i < len - 1 ; i++)
// {
// int minx = min(str1[i] , str1[2]);
// }
for(int i = 1 ; i < len ; i++)
{
if(str1[i] >= '5')
{
str1[i] = '9' - str1[i] + '0';
}
}
if(str1[0] != '9' && str1[0] >= '5')
str1[0] = '9' - str1[0] + '0';
cout<<str1<<endl;
return 0;
}

本文介绍了一个有趣的数值操作问题:通过反转数字中的某些位(将t替换为9-t),帮助角色Chewbacca将一个整数转换成可能的最小正整数,并确保最终结果不以0开头。提供了一个C++实现方案。
226

被折叠的 条评论
为什么被折叠?



