[编程题]a+b
  • 热度指数:35250 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
计算a+b的和



每行包含两个整数a和b

对于每行输入对应输出一行a和b的和

输入

1 5

输出

6
我用大数做了一上午,你告诉我直接cout<<a+b<<endl;?
发表于 2020-03-14 10:41:36 回复(2)
题目理解要正确,不是就一行,是每行,加个while就能通过。
发表于 2017-06-03 09:15:22 回复(1)
java方法,不要想太多。
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        while(input.hasNext()){
            System.out.println(input.nextInt()+input.nextInt());
        }
    }
}


发表于 2017-03-08 18:41:04 回复(7)

python one line solution:

while True:
    try:
        print(sum(map(int,input().split())))
    except:
        break
发表于 2017-10-01 16:59:36 回复(7)
/**
*大家不要忘了考虑大数溢出问题
*/
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
        while(scan.hasNext()){
BigInteger a=scan.nextBigInteger();
BigInteger b=scan.nextBigInteger();
System.out.println(a.add(b));
        }
scan.close();
}
}

发表于 2016-12-23 13:26:11 回复(0)
#include<stdio.h>
int main()
{
    int a,b,c;
    while(scanf("%d%d",&a,&b)!=EOF)
        printf("%d\n",a+b);
}

发表于 2020-03-30 20:22:29 回复(0)
我想复杂了。。。。
自己实现了一个整数范围的大数加法。。。

#include <cstdio>
#include <cstring>

using namespace std;
struct bign
{
    int d[1000];
    int len;
    int flag;
    bign()
    {
        memset(d, 0, sizeof(d));
        len = 0;
        flag = 0;
    }
};
bign change(char str[])
{
    bign a;
    a.len = strlen(str);
    if(str[0] == '-')
    {
        a.flag = 1;
        a.len--;
    }
    for(int i = 0; i < a.len; i++)
        a.d[i] = str[a.len - i - 1 + a.flag] - '0';
    return a;
}
bign add(bign a, bign b)
{
    int carry  = 0;
    bign c;
    for(int i = 0; i < a.len || i < b.len; i++)
    {
        int temp = a.d[i] + b.d[i] + carry;
        c.d[c.len++] = temp % 10;
        carry = temp / 10;
    }
    if(carry)
        c.d[c.len++] = carry;
    return c;
}
bign multiply(bign a, bign b)
{
    bign c;
    for(int i = 0; i < a.len || i < b.len; i++)
    {
        if(a.d[i] < b.d[i])
        {
            c.d[c.len++] = a.d[i] + 10 - b.d[i];
            a.d[i+1]--;
        }
        else
            c.d[c.len++] = a.d[i] - b.d[i];
    }
    while(c.len >= 2 && c.d[c.len - 1] == 0)
        c.len--;
    return c;
}
void print(bign a)
{
    for(int i = a.len - 1; i >= 0; i--)
        printf("%d", a.d[i]);
    printf("\n");
}
int cmp(bign a, bign b)
{
    if(a.len < b.len)
        return -1;
    else if(a.len > b.len)
        return 1;
    else if(a.len == b.len)
    {
        for(int i = a.len - 1; i >=0; i--)
            if(a.d[i] > b.d[i])
                return 1;
            else if(a.d[i] < b.d[i])
                return -1;
    }
    return 0;
}
int main()
{
    char str1[1001], str2[1001];
    while(~scanf("%s%s", str1, str2))
    {
        bign a = change(str1), b = change(str2);
        if(a.flag == 0 && b.flag == 0)
            print(add(a, b));
        else if(a.flag == 1 && b.flag == 1)
        {
            printf("-");
            print(add(a, b));
        }
        else if(a.flag == 0 && b.flag == 1)
        {
            if(cmp(a, b) < 0)
            {
                printf("-");
                print(multiply(b, a));
            }
            else
                print(multiply(a, b));
        }
        else
        {
            if(cmp(a, b) > 0)
            {
                printf("-");
                print(multiply(a, b));
            }
            else
                print(multiply(b, a));
        }

    }
    return 0;
}



发表于 2019-02-22 16:04:30 回复(1)
#include<iostream>
using namespace std;
int main(){
    int a,b;
    while(cin >> a >> b){
        cout << a + b << endl;
    }
    return 0;
}
C++ 通过!

编辑于 2015-05-27 21:30:52 回复(4)
function sum(m, n) {
    return m + n
}

var line
while(line=readline()) {
    let arr = line.split(' ')
    let a = parseInt(arr[0])
    let b = parseInt(arr[1])
    let c = sum(a, b)
    print(c)
}

发表于 2020-10-19 14:20:05 回复(0)

让我们调用NOIP的魔力吧!(其实就是宏定义)

  1. 纪念逝去的NOIP 2019 普及组/提高组复赛
    #include <bits/stdc++.h>
    #define use using namespace std;
    #define play long long a,b;
    #define print while(cin>>a>>b)printf("%lld",a+b);
    #define did int main(){print return 0;}
    #define NOIP use play did
    NOIP
发表于 2020-02-10 14:55:30 回复(0)
#include<iostream>
using namespace std;
int main(){
    int a,b;
    while(cin>>a>>b)
        cout<<a+b<<endl;
}

发表于 2020-01-16 16:15:42 回复(0)
#include<stdio.h>
int main(){
    int a,b;
    while(scanf("%d%d",&a,&b)!=EOF){
        printf("%d\n",a+b);
    }
          return 0;
}
发表于 2020-01-07 23:51:01 回复(0)
//不用BigInteger,自己写
public class Main{
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        while(input.hasNext()){
            String str1 = input.next();
            String str2 = input.next();
            int flag = 0;
            if(str1.contains("-") && !str2.contains("-")){
                str1 = new StringBuffer(str1.substring(1)).reverse().toString();
                flag = 1;
            }else if(!str1.contains("-") && str2.contains("-")){
                str2 = new StringBuffer(str2.substring(1)).reverse().toString();
                flag = 2;
            }else if(str1.contains("-") && str2.contains("-")){
                str1 = new StringBuffer(str1.substring(1)).reverse().toString();
                str2 = new StringBuffer(str2.substring(1)).reverse().toString();
                flag = 3;
            }
            String s="";
            int len1 = str1.length();
            int len2 = str2.length();
            int len = Math.min(len1, len2);
            int num1,num2,a=-1,t=0;
            for(int i=0;i<len;i++){
                num1 = str1.charAt(i)-48;
                num2 = str2.charAt(i)-48;
                if(num1+num2+t>=10){
                    a = num1+num2+t-10;
                    s += a;
                    if(a>=0){
                        t = 1;
                        
                    }else{
                        t = 0;
                    }
                }else{
                    int v = num1+num2+t;
                    s += v;
                    t = 0;
                    a = -1;
                }
            }
            if(len1>len2){
                if(a>=0){
                    int c = str1.charAt(len2)-48+1;
                    s += c;
                    if(len1-len2>=2){
                        s += str1.substring(len2+1);
                    }
                }else{
                    s += str1.substring(len2);
                }
            }else if(len1 == len2){
                if(a>=0){
                    s += 1;
                }
            }else{
                if(a>=0){
                    int c = str2.charAt(len1)-48+1;
                    s += c;
                    if(len2-len1>=2){
                        s += str2.substring(len1+1);
                    }
                }else{
                    s += str2.substring(len1);
                }
            }
            if(flag == 0){
                System.out.println(new StringBuffer(s).reverse());
            }else if(flag == 1){    //str1有负号,str2没有
                System.out.println(Long.parseLong(new StringBuffer(s).reverse().toString())-2*Long.parseLong(str1));    
            }else if(flag == 2){
                System.out.println(Long.parseLong(new StringBuffer(s).reverse().toString())-2*Long.parseLong(str2));
            }else{
                System.out.println("-"+new StringBuffer(s).reverse());
            }        
        }
    }
}

发表于 2018-06-15 09:17:20 回复(0)

最起码大数一下啊,或者取余之类的,或者自定义进制相加啊。。。。这也太随意了。。。。

发表于 2018-01-25 11:26:19 回复(1)
#include<stdio.h>
int  main()
{
    int m,n;
    while(scanf("%d%d",&m,&n)!=EOF)
        printf("%d\n",m+n);
    return 0;
}

发表于 2018-01-10 15:28:15 回复(0)
while True:
    try:
        data = raw_input().split()
        a = int(data[0])
        b = int(data[1])
        print a+b
    except:
        break

编辑于 2016-09-15 14:17:13 回复(0)
#include<stdio.h>

int main() {
	int a, b;
	while(scanf("%d %d", &a,&b) != EOF) {
		printf("%d\n", a+b);
	}

	return 0;
}

发表于 2015-09-19 19:40:31 回复(1)
int getLength(int n){     int i;     for(i=0;n!=0;i++){         n=n/8;     }     return i;
}


int main(){
         int num;     int end;     while(scanf("%d",&num)!=EOF){         end=0;         int length=getLength(num);         for(int i=0;i<length;i++){             end=end+(int)pow(10,i)*(num%8);                 num=num/8;             }         printf("%d",end);     }      }
自我感觉写的挺好,和上边的大佬差太多…
发表于 2019-02-19 19:51:20 回复(0)
while True:
    try:
        lst=[int(x) for x in raw_input().split()]
        print lst[0]+lst[1]
    except:
        exit(0)
py版本。
发表于 2015-12-20 20:34:42 回复(0)
printf("%d\n",a+b);//注意printf()里面记得换行

发表于 2017-03-27 21:37:04 回复(0)

问题信息

难度:
85条回答 40087浏览

热门推荐

通过挑战的用户

查看代码