NC214359. 牛牛的加法
描述
牛牛经常在数学课上睡觉,所以他的数学非常烂。
别人的数学都是进位加法, 但是他的却是非进位加法,比如 7+7 = 4, 22+84 = 6
现在牛牛想考验你一下, 给你两个非常大的数,计算他们的和。
输入描述
第一行一个整数 a ( a ≥ 0 and |a| ≤ 2e5)第二行一个整数 b ( b ≥ 0 and |b| ≤ 2e5)
输出描述
输出一个数 c , c = a + b
示例1
输入:
80 34
输出:
14
示例2
输入:
99 11
输出:
0
Python3 解法, 执行用时: 274ms, 内存消耗: 5668K, 提交时间: 2023-08-12 10:08:46
a=input() b=input() if len(a)>len(b): b=b.rjust(len(a),'0') else: a=a.rjust(len(b),'0') le='' flag=0 for i in range(len(a)): x,y=int(a[i]),int(b[i]) if (x+y)%10!=0 or flag: le+=str((x+y)%10) flag=1 if le=='': print('0') else: print(le)
Java 解法, 执行用时: 1228ms, 内存消耗: 20544K, 提交时间: 2023-08-12 10:08:04
import java.util.*; public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); String a=sc.next(); String b=sc.next(); StringBuffer n=new StringBuffer(); for(int i=0;i<Math.max(a.length(), b.length());i++){ int t1=a.length()-i-1>=0?a.charAt(a.length()-i-1)-'0':0; int t2=b.length()-i-1>=0?b.charAt(b.length()-i-1)-'0':0; n.insert(0,""+(t1+t2)%10); } if(n.length()<=1) { System.out.println(n); } else { int i=0; for(;i<n.length();i++){ if(n.charAt(i)!='0')break; } System.out.println(!n.substring(i,n.length()).equals("")?n.substring(i,n.length()):"0"); } } }