CodeForces 514A - Chewbaсca and Number

4 篇文章 0 订阅
3 篇文章 0 订阅

闲的蛋疼,前两个月学了java,今天又学了Python,所以找了个水题,熟悉一下四种语言。

其实语言不是问题,思路有了,换个语言,如果基本语法会的话,根本不成问题。

确实,Python就是够简洁。因为java和Python只知道点皮毛,可能写的还不够好。

Description

Luke Skywalker gave Chewbacca an integer number x. Chewbacca isn't good at numbers but he loves inverting digits in them. Inverting digit tmeans 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

Input
27


Output
22


Input
4545


Output
4444



 ANSI C:

#include <string.h>
#include <stdio.h>

void change(char *x){
    *x =  '0' + 9 - *x + '0';
}
int main()
{
    char num[32];
    scanf("%s", num);
    if(num[0]!='9' && num[0]>='5')
        change(&num[0]);
    int i;
    for(i = 1; i < strlen(num); ++i)
        if(num[i]>='5')
            change(&num[i]);
    puts(num);
    return 0;
}

C++:

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cctype>

using namespace std;

inline void change(char & x){
    x =  '0' + 9 - x + '0';
}
int main()
{
    char num[32];
    cin >> num;
    if(num[0]!='9' && num[0]>='5')
        change(num[0]);
    for(int i = 1; i < strlen(num); ++i)
        if(num[i]>='5')
            change(num[i]);
    cout << num << endl;
    return 0;
}

Java:

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		String num = cin.next();
		for(int i = 0; i < num.length(); ++i){
			if(i==0){
				if('5' <= num.charAt(0) && num.charAt(0) <= '8')
					System.out.print((char)('0' + 9 - num.charAt(0) + '0'));
				else
					System.out.print(num.charAt(0));
			}
			else{
				if('5' <= num.charAt(i) && num.charAt(i) <= '9')
					System.out.print((char)('0' + 9 - num.charAt(i) + '0'));
				else
					System.out.print(num.charAt(i));
			}
		}
		cin.close();
	}

}


Python:

x = list(input())
for i in range(len(x)):
    if (i == 0 and '5' <= x[0] <= '8') or (i != 0 and '5' <= x[i] <= '9'):
        x[i] = str(9-int(x[i]))
    print(x[i], end = '')


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值