做一个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个数字的和,每个输出占一行。
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;
}