首页 > 试题广场 >

数字反转

[编程题]数字反转
  • 热度指数:9733 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转。

输入描述:
每行两个正整数a和b(0<a,b<=10000)。


输出描述:
    如果满足题目的要求输出a+b的值,否则输出NO。
示例1

输入

12 34
99 1

输出

46
NO
import java.io.*;
import java.math.BigInteger;
import java.util.Arrays;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while ((str = br.readLine()) != null) {
            //录入
            String[] s = str.split(" ");
            int len = s.length;

            //转成int数组
            int[] a = new int[len];
            for (int i = 0; i < len; i++) {
                a[i] = Integer.parseInt(s[i]);
            }

            int sum1 = a[0] + a[1];
            StringBuilder temps = new StringBuilder(String.valueOf(sum1));
            sum1 = Integer.parseInt(String.valueOf(temps.reverse()));//和的反转

            //转成int数组,反转
            int[] b = new int[len];
            for (int i = 0; i < len; i++) {
                StringBuilder sb = new StringBuilder(s[i]);
                b[i] = Integer.parseInt(String.valueOf(sb.reverse()));
            }

            int sum2 = b[0] + b[1];//反转的和

            if (sum1 == sum2)
                System.out.println(a[0]+a[1]);
            else
                System.out.println("NO");

        }

    }
}

发表于 2021-02-17 20:08:17 回复(0)
Java
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            //  12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转。
            int i = scanner.nextInt(); //12
            int j = scanner.nextInt(); ///34
            int i1 = getReverse(i); //21
            int i2 = getReverse(j); //43
            int sum1 = i+j; //46
            int sum2 = i1+i2; //64
            System.out.println(getReverse(sum1)==sum2?sum1:"NO");
        }
    }
    static int getReverse(int i){
        return  Integer.parseInt(new StringBuilder(String.valueOf(i)).reverse().toString());
    }
}


发表于 2020-03-19 10:51:30 回复(0)
import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            
            String[] s = sc.nextLine().split(" ");
            int[] num = new int[2];
            int[] numrev = new int[2];
            for(int i = 0;i<2;i++){
                num[i] = Integer.valueOf(s[i]);
                numrev[i] = Integer.valueOf(new StringBuffer(s[i]).reverse().toString());
            }
            int oriSum = num[0]+num[1];
            int numSumRev = Integer.valueOf(new StringBuffer(String.valueOf(oriSum)).reverse().toString());
            int numrevsum = numrev[0]+numrev[1];
            if(numSumRev == numrevsum){
                System.out.println(oriSum);
            }else{
                System.out.println("NO");
            }
            
        }
    }
}

发表于 2019-02-23 14:15:47 回复(0)

问题信息

难度:
3条回答 10201浏览

热门推荐

通过挑战的用户

查看代码