加法
描述
给两个正整数 A 和 B,输出它们的和 C=A+B
输入
共计一行,含两个正整数 A 和 B。
输出
共计一行,含一个正整数,即 A 与 B 之和 C。
输入样例
100 200
输出样例
300
限制
1 <= {a, b} < 262
时间:2 sec
空间:256 MB
#include<cstdio>
int main()
{
long long a,b;//满足a,b取值要求
scanf("%lld %lld",&a,&b);
printf("%lld",a+b);
return 0;
}
简单表达式
描述
任给一个形如“A op B”的表达式,计算它的值。其中操作数 A 和 B 都是正整数,运算符 op 可以是+、‐或*,分别表示加、减、乘。运算符有且只有一个,除了 A 和 B 的内部不能有空格外(例如 123 不能写成 12 3),其余位置均可能有空格甚至多个空格,但不包含制表符 TAB。
输入
共计一行,即表达式“A op B”。
输出
共计一行,即表达式的值。
输入样例1
100 + 200
输出样例1
300
输入样例2
100 - 200
输出样例2
-100
限制
1 <= {a, b} < 262
时间:2 sec
空间:256 MB
#include<iostream>
#include<cstdio>
int main()
{
double a,b,result;
char op;
scanf("%lf %c %lf",&a,&op,&b);
switch(op)
{
case '+':
result=a+b;
break;
case '-':
result=a-b;
break;
default:
result=a*b;
break;
}
printf("%.0lf\n",result);//以整数形式输出
return 0;
}
最大公约数
描述
任给大于 1 的两个整数 A 和 B,输出它们的最大公约数,即能够同时整除 A 和 B 的最大正整数。
输入
共计一行,含两个正整数 A 和 B。
输出
共计一行,即 A 和 B 的最大公约数。
输入样例1
100 35
输出样例1
5
输入样例2
121 37
输出样例2
1
限制
1 ≤ {A, B} ≤ 109
#include <cstdio>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int r=1;
while(r)
{
r=a%b;
a=b;
b=r;
}
printf("%d\n",a);
return 0;
}
最大公约数
描述
给定一段文本,统计每个英文字母在其中的出现频率。忽略字母的大小写。
输入
一段文本,以换行结束。
输出
不超过 26 行。按次序逐行输出各英文字母的出现次数,未出现的字母忽略。 每一行的格式均为:
字母: 出现次数
其中,字母统一采用大写形式,冒号为半角形式,紧接冒号有个空格。
输入样例
Hello World!
输出样例
D: 1
E: 1
H: 1
L: 3
O: 2
R: 1
W: 1
限制
文本总长度不超过 4,096 个字节
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#define str_len 4096//文本总长度不超过4096
int main()
{
char test[str_len+1];
int i;
gets(test);
int count[26];//存放每个字母出现次数
for(i=0;i<26;i++)
{
count[i]=0;//初始化为0
}
int len=strlen(test);//遍历循环
for(i=0;i<len;i++)
{
char c=test[i];
if('a'<=c&&c<='z')
{
count[c-'a']++;
}
else if('A'<=c&&c<='Z')
{
count[c-'A']++;
}
else ;
}
for(i=0;i<26;i++)
{
if(count[i])
{
printf("%c: %d\n",i+'A',count[i]);//打印结果
}
}
return 0;
}
通话时长
描述
某人总是花很多时间给父母打电话。有一次他记录了打电话的起止时间 t1 和 t2,请帮他算算此 次通话总共持续了多少秒。
输入
共计一行, 包含t1和t2,用一个空格分隔。 时间格式为:
HH:MM:SS
其中 HH、MM 和 SS 均为两位数字,比如 0:1:2 应统一写作 00:01:02。
请注意,这里省略了日期信息。
输出
共计一行,即通话时长。
输入样例1
00:00:03 00:00:06
输出样例1
3
输入样例2
01:02:03 04:05:06
输出样例2
10983
限制
0 ≤ HH < 24
0 ≤ {MM, SS} < 60
通话时长不超过 12 个小时(43,200 秒)
#include<iostream>
#include<cstdio>
int main()
{
int h1,m1,s1,h2,m2,s2;
scanf("%d:%d:%d %d:%d:%d",&h1,&m1,&s1,&h2,&m2,&s2);
int interval=h2*3600+m2*60+s2-h1*3600-m1*60-s1;//转化为分钟
if(interval<0)
{
interval+=24*3600;
}
printf("%d\n",interval);
return 0;
}
大数据
描述
有N组数据,每组数据给两个正整数 A 和 B,输出它们的和 C = A + B。
输入
共 N + 1 行。
第 1 行是正整数 N。
第 2 行至第 N + 1 行每行两个正整数 A 和 B。
输出
共N行,每行一个正整数,即 A 与 B 之和 C。
输入样例
3
10 30
20 40
15 22
输出样例
40
60
37
数据范围
1 <= N <= 1.5 × 106
1 <= {a, b} <= 108
本题最大规模测例 N = 1.5 × 106,a、b 平均位数大于 7,可用于测试读写整数的速度。
资源限制
时间:1 sec
空间:256 MB
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
setvbuf(stdin,new char[1<<20],_IOFBF,1<<20);//对于输入,缓冲会在请求输入且缓冲为空时被填充
setvbuf(stdout,new char[1<<20],_IOFBF,1<<20);//对于输出,数据在缓冲填满时被一次性写入
int N;
scanf("%d",&N);
for(int i=0;i<N;i++)
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d\n",a+b);
}
return 0;
}