关于ACM,牛客其实也有专门的模拟练习:https://ac.nowcoder.com/acm/contest/5657#question
做这个也可以
关于while(cin>>n)
在处理输入时,cin >> n; while (n--) 和 while (cin >> n) 是两种常见方法
这里说一下区别
cin >> n; while (n--)
当你预先知道迭代次数,并希望根据该次数执行固定次数的任务时,请使用 cin >> n; while (n--)。
例题:处理n组数据输入、
while(cin>>n)
当你想从输入流中动态读取元素,直到输入结束或特定的终止条件时,可以使用 while (cin >> n)。
例如:奇怪的信
在这题中,输入数据有多组,具体由用户决定,这就导致我们得一直获取输入,直到用户不输入为止
输入两个值
输入两个值,以空格隔开
题目描述
你的任务是计算a+b。
输入
输入包含一系列的a和b对,通过空格隔开。一对a和b占一行。
输出
对于输入的每对a和b,你需要依次输出a、b的和。
如对于输入中的第二对a和b,在输出中它们的和应该也在第二行。
样例输入
3 4
11 40
样例输出
7
51
输入输出知识点
cin >> a >> b
用于输入 a 和 b 的两个独立值。该代码在 C++ 中用于从标准输入(通常是键盘)读取两个值,并将其存储到变量 a 和 b 中。
例如,如果输入 "10 "和 "20 "这两个以空格隔开的值,并按回车键,第一个值 "10 "将存储在变量 a 中,第二个值 "20 "将存储在变量 b 中。
代码
#include <iostream>
using namespace std;
int main(){
int a, b;
while(cin >> a >> b){
cout << a + b << endl;
}
}
输入n行数据
题目描述
计算a+b,但输入方式有所改变。
输入
第一行是一个整数N,表示后面会有N行a和b,通过空格隔开。
输出
对于输入的每对a和b,你需要在相应的行输出a、b的和。
如第二对a和b,对应的和也输出在第二行。
样例输入
2
2 4
9 21
样例输出
6
30
提示
注意,测试数据不仅仅一组。也就是说,会持续输入N以及后面的a和b
输入输出知识点
这里要练习的是有n行输入时的处理方法,输入的核心方法还是cin,但是要额外给一个输入n,通过while循环+n来控制输入数据的行数
代码
#include <iostream>
using namespace std;
int main(){
int n, a, b;
while(cin >> n){
while(n--){//--n好像过不了测试用例
cin >> a >> b;
cout << a + b << endl;
}
}
}
输入判断
题目描述
你的任务依然是计算a+b。
输入
输入中每行是一对a和b。其中会有一对是0和0标志着输入结束,且这一对不要计算。
输出
对于输入的每对a和b,你需要在相应的行输出a、b的和。
如第二对a和b,他们的和也输出在第二行。
样例输入
2 4
11 19
0 0
样例输出
6
30
输入输出知识点
这里需要注意,使用while+cin时,代码会阻塞在while处等待输入的
因此这里需要进行判断,满足条件时中断循环(前面输入n行也是一种控制)
代码
#include <iostream>
using namespace std;
int main(){
int a, b;
while(cin >> a >> b){
if(a == 0 && b == 0) break;
cout << a + b << endl;
}
}
输入若干值
指定n,每行有n个整数
题目描述
你的任务是计算若干整数的和。
输入
每行的第一个数N,表示本行后面有N个数。
如果N=0时,表示输入结束,且这一行不要计算。
输出
对于每一行数据需要在相应的行输出和。
样例输入
4 1 2 3 4
5 1 2 3 4 5
0
样例输出
10
15
输入输出知识点
结合所给的n,控制输入数,然后不定个数的整数用累加即可
代码
#include <iostream>
using namespace std;
int main(){
int n, num;
while(cin >> n){
if(n == 0) break;
int sum = 0;
while(n--){
cin >> num;
sum += num;
}
cout << sum << endl;
}
}
控制输入行数和每行个数
题目描述
你的任务是计算若干整数的和。
输入
输入的第一行为一个整数N,接下来N行每行先输入一个整数M,然后在同一行内输入M个整数。
输出
对于每组输入,输出M个数的和,每组输出之间输出一个空行。
样例输入
3
4 1 2 3 4
5 1 2 3 4 5
3 1 2 3
样例输出
10
15
6
提示
注意以上样例为一组测试数据,后端判题会有很多组测试数据,也就是会有多个N的输入 例如输入可以是: 3 4 1 2 3 4 5 1 2 3 4 5 3 1 2 3 3 4 1 2 3 4 5 1 2 3 4 5 3 1 2 3 输入则是 10 15 6 10 15 6 只保证每组数据间是有空行的。但两组数据并没有空行
代码
#include <iostream>
using namespace std;
int main(){
int n, m, num;
while(cin >> n){
while(n--){
cin >> m;
int sum = 0;
while(m--){
cin >> num;
sum += num;
}
cout << sum << endl;
if(n != 0) cout << endl;
}
}
}
标签:输出,01,int,输入输出,样例,cin,ACM,while,输入
From: https://www.cnblogs.com/DAYceng/p/17592113.html