列表

详情


NC219500. 加法运算

描述

给你一个数n和一个数m,求出它们的和。

输入描述

n和m,中间用空格隔开。0<n,m<10500

输出描述

一个T。表示答案

示例1

输入:

2 3

输出:

5

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++11) 解法, 执行用时: 8ms, 内存消耗: 500K, 提交时间: 2021-03-12 11:18:18

#include<stdio.h>
#include<string.h>
int main(){
	char s[10000],str[10000];
	int m,n,i,j,x;
	int a[10000],b[10000];
	scanf("%s",s);
	scanf("%s",str);
	m=strlen(s);
	n=strlen(str);
	for(i=0;i<n;i++){
		a[i]=str[n-i-1]-48;
	}
	for(i=0;i<m;i++){
		b[i]=s[m-i-1]-48;
	}
	j=(m>n)?m:n;
		for(i=0;i<j;i++){
			a[i+1]+=x=(a[i]+b[i])/10;
			a[i]=(a[i]+b[i])%10;
		}
		if(x) j++;
		for(i=0;i<j;i++)
		printf("%d",a[j-1-i]);
	return 0;
}

C(clang11) 解法, 执行用时: 6ms, 内存消耗: 376K, 提交时间: 2021-03-12 10:42:17

#include<stdio.h>
#include<string.h>
int main(){
	int a[1000]={0},b[1000]={0},x,c,d,i,j;
	char m[1000],n[1000];
	scanf("%s",m);
	c=strlen(m);
	for(i=0;i<c;i++)
	a[i]=m[c-1-i]-48;
	scanf("%s",n);
	d=strlen(n);
	for(i=0;i<d;i++)
	b[i]=n[d-1-i]-48;
	x=(c>d)?c:d;
	for(i=0;i<x;i++){
		a[i+1]+=j=(a[i]+b[i])/10;
		a[i]=(a[i]+b[i])%10;
	}
	if(j)x++;
	for(i=0;i<x;i++)
	printf("%d",a[x-1-i]);
	return 0;
}

Java 解法, 执行用时: 42ms, 内存消耗: 11000K, 提交时间: 2021-07-26 20:46:36

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        BigInteger n = scanner.nextBigInteger();
        BigInteger m = scanner.nextBigInteger();

        System.out.println(n.add(m));
    }
}

Python3(3.9) 解法, 执行用时: 22ms, 内存消耗: 2816K, 提交时间: 2021-03-13 18:55:40

a = int(input())
b = int(input())
print(a+b)

上一题