package com.test.nowcode1;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
*
* zhrt是数学大佬,但有一天一道奇怪的数学题把他难住了:
* 题目要求计算两个十进制数相加后的结果,但在本题中是不需要进位的!
* 输入描述: 输入有多组(组数不超过1000),每组占一行,每行有2个正整数A和B。(A,B<=1e9)
* 输出描述:每组输出占一行,输出题目中A和B相加的结果。
* 示例1
* 输入
* 123 321
* 999 1
* 99 11
* 输出
* 444
* 990
* 0
*
*/
/**
* 解题思路: 利用数组集合存放数据;
* 字符串->charAt取各位数字转换为整型,各位相加取余->结果放入整形数组->用StringBuilder处理为String输出
*
* @author pikaqiu_li
*
*/
public class Main2 {
public static void main(String[] args) {
System.out.println("remeber delete me:");
Scanner in = new Scanner(System.in);
// 创建一个集合存储输入数据
List<String> numList = new ArrayList<String>();
String strIn = "";
do {
strIn = in.nextLine();
if (strIn.equals("") || numList.size() == 1000) {
break;
} else {
String[] num2 = strIn.split(" ");
if (Integer.valueOf(num2[0]) <= Math.pow(10, 9) && Integer.valueOf(num2[1]) <= Math.pow(10, 9)) {
numList.add(strIn);
}
}
} while (in.hasNextLine());
long t1 = System.currentTimeMillis();
for (int id = 0; id < numList.size(); id++) {
String numAB = numList.get(id);
String[] AB = numAB.split(" ");
//正整数A
String A = AB[0];
//正整数B
String B = AB[1];
//Cout整型数组放结果
int[] Cout = new int[A.length() >= B.length() ? A.length() : B.length()];
//判断两整数重合部分并按规则各位相加,
for (int i = (A.length() > B.length() ? B.length() : A.length()) - 1; i >= 0; i--) {
int numA = Integer.parseInt(A.charAt(i) + "");
int numB = Integer.parseInt(B.charAt(i) + "");
int C = (numA + numB) % 10;
Cout[i] = C;
}
//若数A>数B,将A多出的部分赋给结果数组Cout
if (A.length() > B.length()) {
for (int i = 0; i < (A.length() - B.length()); i++) {
Cout[i] = Integer.parseInt(A.charAt(i)+"");
}
} else if (A.length() < B.length()) {//反之若数B>数A,将B多出的部分赋给结果数组Cout
for (int i = 0; i < (B.length() - A.length()); i++) {
Cout[i] = Integer.parseInt(B.charAt(i)+"");
}
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < Cout.length; i++) {
sb.append(Cout[i]);//将Cout转换为字符串
}
String result = sb.toString();
System.out.println(Integer.parseInt(result));
}
in.close();
long t2 = System.currentTimeMillis();
System.out.println("shijian:" + (t2 - t1) + "ms");
}
}
编程题“奇怪的数组”
最新推荐文章于 2024-08-25 13:46:29 发布