关于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;
}
}
}

【ACM专项练习#01】基本输入输出,如何加减的更多相关文章

  1. mysql日期加减<转>

    1. MySQL 为日期增加一个时间间隔:date_add() set @dt = now(); select date_add(@dt, interval 1 day); - 加1天 select ...

  2. JS日期的获取与加减

    1)获取当前日期: var today = new Date(); 2)设定某个日期: var d = new Date("2015/1/08".replace(/-/g,&quo ...

  3. Oracle 如何对时间进行简单加减运算

    在我们用dbms_job包进行定时Job的时候,需要设置时间间隔,所以需要知道时间的基本加减方法. SQL> alter session set nls_date_format='yyyy-mm ...

  4. Linux中日期的加减运算

    Linux中日期的加减运算 目录 在显示方面 在设定时间方面 时间的加减 正文 date命令本身提供了日期的加减运算. date 可以用来显示或设定系统的日期与时间. 回到顶部 在显示方面 使用者可以 ...

  5. 利用机器学习实现微信小程序-加减大师自动答题

    之前有看到微信小程序<跳一跳>别人用python实现自动运行,后来看到别人用hash码实现<加减大师>的自动答题领取娃娃,最近一直在研究深度学习,为啥不用机器学习实现呢?不就是 ...

  6. mysql中使用日期加减时无法识别年-月格式数据的问题,%Y-%m"这种格式数据

    最新做报表统计的时候处理按月统计部分时发现,虽然使用 DATE_FORMAT( time, '%Y-%m' ) 函数可以将日期格式转成年-月,但是如果是参数是年-月格式,即"2018-10& ...

  7. 【python】详解time模块功能asctime、localtime、mktime、sleep、strptime、strftime、time等函数以及时间的加减运算

    在Python中,与时间处理相关的模块有:time.datetime以及calendar.学会计算时间,对程序的调优非常重要,可以在程序中狂打时间戳,来具体判断程序中哪一块耗时最多,从而找到程序调优的 ...

  8. js 日期 处理 加减时分秒

    1.日期处理 var _d = new Date("2018/01/01 12:00:00"); _d = new Date(_d.valueOf() + 60 * 1000);/ ...

  9. js中两个日期大小比较,获取当前日期,日期加减一天

    一.两个日期大小比较 1.日期参数格式:yyyy-mm-dd // a: 日期a, b: 日期b, flag: 返回的结果 function duibi(a, b,flag) { var arr = ...

  10. java基础篇 -- 常用的日期加减和日期格式化工具类

    平时我们遇到日期的加减,感觉是相当麻烦的,以下是常用的日志加减的方法,包括日的加减.月的加减等,也包括了一些常用的日期格式化,这样在我们以后碰到日期加减的时候会省去很多麻烦,欢迎大神指正和吐槽: pa ...

随机推荐

  1. 【转帖】Ethernet 与 Infiniband的网络特性对比

    一.两者定位 以太网(Ethernet): 应用最广泛,是最成熟的网络互联技术,也是整个互联网络大厦的基石,兼容性非常好,可实现不同的系统之间的互连互通 IB(Infiniband): 领域很专,作为 ...

  2. [转帖]2.6 The jcmd Utility

    https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html#BABEJDGE The j ...

  3. 《Javascript高级程序设计》读书笔记——继承与原型链

    继承与原型链 原型链 在原型那一节中,讲到了用于搜索对象属性的原型搜索机制:而原型链,本质上 就是对原型搜索机制的扩充: 回想下之前的内容,我们要读取一个Person的实例p属性,会先搜索实例p:如果 ...

  4. js解析上传APK文件的详细信息

    前端解析APK版本信息 需要安装这个包,可以使用cnpm或者npm npm 安装 app-info-parser ( 命令:npm install app-info-parser) APKInfo为i ...

  5. 【代码片段分享】比 url.QueryEscape 快 7.33 倍的 FastQueryEscape

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 做 profile 发现 url.QueryEscape ...

  6. GO中的GC

    go中的垃圾回收 前言 垃圾回收 go中的垃圾回收方式 三色标记法 根对象 STW 屏障技术 插入屏障 删除屏障 混合写屏障 GO中GC的流程 GC的触发时机 如果内存分配速度超过了标记清除的速度怎么 ...

  7. 解决idea登录github出现的invalid authentication data 404 not found以及登录 token 失效

    0.错误提醒: Your token is invalid, please re-login github and get token again. 报错无效的用户名(invalid username ...

  8. 2.2 CE修改器:未知数值扫描

    本关需要扫描未知数只扫描,要在不知道初始值的情况下找到一个在0到500之间的数值.首先,选择"未知的初始值"扫描方式,在数值类型中选择 4 字节,并点击"首次扫描&quo ...

  9. 14.5 Socket 应用组播通信

    组播通信是一种基于UDP协议的网络通信方式,它允许发送方将消息同时传递给多个接收方.在组播通信中,发送方和接收方都会加入一个共同的组播组,这个组播组对应一个特定的IP地址,所有加入该组播组的主机都能够 ...

  10. C/C++ 获取自身IP与域名片段

    判断大端序小端序: 通常情况下,数值在内存中存储的方式有两种,一种是大尾字节序,另一种是小尾,比如0x01020304这样一个数值,如果用大尾方式存储,其存储方式为01 02 03 04而用小尾方式存 ...