Tutor练手

加法

描述
给两个正整数 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;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值