a+b系列问题

做一个a+b问题的合集,其实就是一个各种输入输出格式的汇总。

输入第一行是一个整数N,代表接下来N行会有N组样例输入,每组输出占一行。

sample input:
2
1 5
10 20

sample output:
6
30

#include<iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int a,b;
	int ans=0;
	for(nt i=0;i<n;i++)
	{
		cin>>a>>b;
		ans=a+b;
		cout<<ans<<endl;
	}
	return 0;
}

有多组样例输入,以0 0代表输入结束

sample input:
1 5
10 20
0 0

sample output:
6
30

#include<iostream>
#include<cstring>
#include<cstdio> 
using namespace std;
int main()
{
	int a,b,c[1000];
	int num=0;
	for(int i=0;i<1000;i++)
	{
		cin>>a>>b;
		if(a==0&&b==0)	break;
		c[i]=a+b;
		num++;
	}
	for(int i=0;i<num;i++)
	cout<<c[i]<<endl;
	return 0;
 }

计算a+b,有多组样例输入,每组输出占一行。

sample input:
1 5
10 20

sample output:
6
30

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
	int a,b,c[1000];
	int num=0;
	while(scanf("%d%d",&a,&b)!=EOF)
	{
		num=a+b;
		cout<<num<<endl;
	}
	return 0;
 }

计算一些整数的和,输入包含多组样例。
每组样例包含一个整数N,然后在同行有N个整数。若N = 0,则表示输入结束,这个样例不需要被处理。对于每组用例,你应当输出这组样例N个数字的和,每个输出占一行。

扫描二维码关注公众号,回复: 9969519 查看本文章

sample input:
4 1 2 3 4
5 1 2 3 4 5
0

sample output:
10
15

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
	int n,ans=0;
	int temp[1000];
	while(scanf("%d",&n)!=EOF&&n!=0)
	{
		ans=0;
		for(int i=0;i<n;i++)
		{
			cin>>temp[i];
			ans+=temp[i];
		}
		cout<<ans<<endl;
	}
	return 0;
 }

计算下面每行数的和,第一行有一个整数N,表示有N行数。接下来N行,每行第一个为整数M,表示本行后面有M个整数。对于输入的每一行数,分别对应输出每一行数的和。

sample input:
2
4 1 2 3 4
5 1 2 3 4 5

sample output:
10
15

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
	int n,m,ans=0;
	int temp[1000];
	cin>>n;
	while(n--)
	{
		while(scanf("%d",&m)!=EOF)
		{
			ans=0;
			for(int i=0;i<m;i++)
			{
				cin>>temp[i];
				ans+=temp[i];
			}
			cout<<ans<<endl;
		}
	}
	return 0;
 }

计算下面每一行数的和,输入包含多组数据,每组数据占一行。每行第一个数为整数N,后面有N个整数。对于输入的每一行数,分别对应输出每一行数的和。

sample input:
4 1 2 3 4
5 1 2 3 4 5

sample output:
10
15

#include<iostream>
#include<cstring>
#include<cstdio> 
using namespace std;
int main()
{
	int m,ans=0;
	int temp[1000];
	while(scanf("%d",&m)!=EOF)
	{
		ans=0;
		for(int i=0;i<m;i++)
		{
			cin>>temp[i];
			ans+=temp[i];
		}
		cout<<ans<<endl;
	}
	return 0;
 }

求许多数的和,第一行需要输入一个整数N,接下来会有N行。 每一行开始输入一个整数M,然后会有M个数在同一行。对于每组输入,要求在一行输出它们的和。并且你要保证每组输出之间有一空行。

sample input:
3
4 1 2 3 4
5 1 2 3 4 5
3 1 2 3

sample output:
10

15

6

这里要注意是保证每组输出之间有一个空行

Select Code#include<iostream>
#include<cstring>
#include<cstdio>//gets 
using namespace std;
int main()
{
	int n,m,ans=0;
	cin>>n;
	int num[1000];
	while(n--)
	{
		ans=0;
		cin>>m;
		for(int i=0;i<m;i++)
		cin>>num[i];
		for(int i=0;i<m;i++)
		ans+=num[i];
		if(n==0)cout<<ans<<endl;
		else cout<<ans<<endl<<endl;
	}
	return 0;
 } 

计算a+b,题目包含多组数据,每组数据一行. 每行两个整数 a 和 b ( 1 <= a, b ) , 用一个空格分开,某行 a = 0, b = 0, 意味着数据EOF。

sample input:
1 5
10 20
100 10
0 0

sample output:
6
30
110

这里要注意的是前n-1个元素输出时后面要跟换行,而最后一个元素输出时没有空行。

#include<iostream>
#include<cstring>
#include<cstdio>//gets 
using namespace std;
int main()
{
	int a,b;
	int c[1000];
	int num=0;
	for(int i=0;i<1000;i++)
	{
		cin>>a>>b;
		if(a==0&&b==0)break;
		c[i]=a+b;
		num++;
	}
	for(int i=0;i<num-1;i++)
	{
		cout<<c[i]<<endl;
	}
	cout<<c[num-1];
	return 0;
 }

读入两个小于100的正整数A和B,计算A+B。
需要注意的是:A和B的每一位数字由对应的英文单词给出

测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出。对每个测试用例输出1行,即A+B的值。

sample input:
one + two =
three four + five six =
zero seven + eight nine =
zero + zero =

sample output:
3
90
96

对于如何从字符串转换到数字,可以使用二维数组的方式,注意数组的大小即可,害怕溢出的可以学我,直接开十(稳)
对于数据的处理这里有点类似于快读,每次a=a*10+新值,最后对a和b进行判断输出就可以了。

#include<iostream>
#include<string>
using namespace std;

char a[10][10] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };

int change(string str) 
{    
    for (int i = 0; i < 10; i++) 
	{
        if (a[i] == str)
            return i;
    }
}

int main()
{
    string aa,bb;
    while (1) {
        int a = 0, b = 0;
        while (cin >> aa&&aa != "+") 
		{  
            a = a * 10 + change(aa);
        }
        while (cin >> bb&&bb != "=") 
		{    
            b = b * 10 + change(bb);
        }
        if (a == 0 && b == 0)  
            break;
        else
            cout << a + b << endl;
    }
    return 0;
}
发布了29 篇原创文章 · 获赞 1 · 访问量 969

猜你喜欢

转载自blog.csdn.net/qq_44654498/article/details/104434044
今日推荐