【GPLT 一阶题目集】L1-081~L1-085

目录

L1-081 今天我要赢

L1-082 种钻石

L1-083 谁能进图书馆

L1-084 拯救外星人

L1-085 试试手气


L1-081 今天我要赢

2018 年我们曾经出过一题,是输出“2018 我们要赢”。今年是 2022 年,你要输出的句子变成了“我要赢!就在今天!”然后以比赛当天的日期落款。

输入格式:

本题没有输入。

输出格式:

输出分 2 行。在第一行中输出 I'm gonna win! Today!,在第二行中用 年年年年-月月-日日 的格式输出比赛当天的日期。已知比赛的前一天是 2022-04-22。

输入样例:

输出样例:

I'm gonna win! Today!
这一行的内容我不告诉你…… 你要自己输出正确的日期呀~

#include <stdio.h>
int main()
{
    printf("I'm gonna win! Today!\n2022-04-23");
    return 0;
}

注意事项:

如有疑问,欢迎提出。

L1-082 种钻石

2019年10月29日,中央电视台专题报道,中国科学院在培育钻石领域,取得科技突破。科学家们用金刚石的籽晶片作为种子,利用甲烷气体在能量作用下形成碳的等离子体,慢慢地沉积到钻石种子上,一周“种”出了一颗 1 克拉大小的钻石。

本题给出钻石的需求量和人工培育钻石的速度,请你计算出货需要的时间。

输入格式:

输入在一行中给出钻石的需求量 N(不超过 10^7 的正整数,以微克拉为单位)和人工培育钻石的速度 v(1≤v≤200,以微克拉/天为单位的整数)。

输出格式:

在一行中输出培育 N 微克拉钻石需要的整数天数。不到一天的时间不算在内。

输入样例:

102000 130

输出样例:

784

#include <stdio.h>
int main()
{
    int a1,a2;
    scanf("%d %d",&a1,&a2);
    printf("%d",a1/a2);
    return 0;
}

注意事项:

如有疑问,欢迎提出。

L1-083 谁能进图书馆

为了保障安静的阅读环境,有些公共图书馆对儿童入馆做出了限制。例如“12 岁以下儿童禁止入馆,除非有 18 岁以上(包括 18 岁)的成人陪同”。现在有两位小/大朋友跑来问你,他们能不能进去?请你写个程序自动给他们一个回复。

输入格式:

输入在一行中给出 4 个整数:

禁入年龄线 陪同年龄线 询问者1的年龄 询问者2的年龄

这里的禁入年龄线是指严格小于该年龄的儿童禁止入馆;陪同年龄线是指大于等于该年龄的人士可以陪同儿童入馆。默认两个询问者的编号依次分别为 1 和 2;年龄和年龄线都是 [1, 200] 区间内的整数,并且保证 陪同年龄线 严格大于 禁入年龄线。

输出格式:

在一行中输出对两位询问者的回答,如果可以进就输出 年龄-Y,否则输出 年龄-N,中间空 1 格,行首尾不得有多余空格。

在第二行根据两个询问者的情况输出一句话:

如果两个人必须一起进,则输出 qing X zhao gu hao Y,其中 X 是陪同人的编号, Y 是小孩子的编号;
如果两个人都可以进但不是必须一起的,则输出 huan ying ru guan;
如果两个人都进不去,则输出 zhang da zai lai ba;
如果一个人能进一个不能,则输出 X: huan ying ru guan,其中 X 是可以入馆的那个人的编号。

输入样例:

12 18 18 8

输出样例:

18-Y 8-Y
qing 1 zhao gu hao 2

输入样例:

12 18 10 15

输出样例:

10-N 15-Y
2: huan ying ru guan

#include <stdio.h>
int main()
{
    int jinru,peitong,a1,a2;
    scanf("%d %d %d %d",&jinru,&peitong,&a1,&a2);
    if(a1==a2)
    {
        if(a1<jinru)
            printf("%d-N %d-N\nzhang da zai lai ba",a1,a2);
        else
            printf("%d-Y %d-Y\nhuan ying ru guan",a1,a2);
    }
    else if(a1>a2)
    {
        if(a2>=jinru)
            printf("%d-Y %d-Y\nhuan ying ru guan",a1,a2);
        else if(a2<jinru&&a1>=peitong)
            printf("%d-Y %d-Y\nqing 1 zhao gu hao 2",a1,a2);
        else if(a1>=jinru&&a1<peitong)
            printf("%d-Y %d-N\n1: huan ying ru guan",a1,a2);
        else
            printf("%d-N %d-N\nzhang da zai lai ba",a1,a2);
    }
    else
    {
        if(a1>=jinru)
            printf("%d-Y %d-Y\nhuan ying ru guan",a1,a2);
        else if(a1<jinru&&a2>=peitong)
            printf("%d-Y %d-Y\nqing 2 zhao gu hao 1",a1,a2);
        else if(a2>=jinru&&a2<peitong)
            printf("%d-N %d-Y\n2: huan ying ru guan",a1,a2);
        else
            printf("%d-N %d-N\nzhang da zai lai ba",a1,a2);
    }
    return 0;
}

注意事项:

是“Y”还是“N”需要根据两个人的年龄综合考虑,而非根据自身年龄。

如有疑问,欢迎提出。

L1-084 拯救外星人

你的外星人朋友不认得地球上的加减乘除符号,但是会算阶乘 —— 正整数 N 的阶乘记为 “N!”,是从 1 到 N 的连乘积。所以当他不知道“5+7”等于多少时,如果你告诉他等于“12!”,他就写出了“479001600”这个答案。

本题就请你写程序模仿外星人的行为。

输入格式:

输入在一行中给出两个正整数 A 和 B。

输出格式:

在一行中输出 (A+B) 的阶乘。题目保证 (A+B) 的值小于 12。

输入样例:

3 6

输出样例:

362880

#include <stdio.h>
int jie(int n)
{
    if(n==0||n==1)
        return 1;
    return n*jie(n-1);
}
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    printf("%d",jie(a+b));
    return 0;
}

注意事项:

如有疑问,欢迎提出。

L1-085 试试手气

我们知道一个骰子有 6 个面,分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态,即它们朝上一面的点数,让你一把抓起摇出另一套结果。假设你摇骰子的手段特别精妙,每次摇出的结果都满足以下两个条件:

1、每个骰子摇出的点数都跟它之前任何一次出现的点数不同;
2、在满足条件 1 的前提下,每次都能让每个骰子得到可能得到的最大点数。
那么你应该可以预知自己第 n 次(1≤n≤5)摇出的结果。

输入格式:

输入第一行给出 6 个骰子的初始点数,即 [1,6] 之间的整数,数字间以空格分隔;第二行给出摇的次数 n(1≤n≤5)。

输出格式:

在一行中顺序列出第 n 次摇出的每个骰子的点数。数字间必须以 1 个空格分隔,行首位不得有多余空格。

输入样例:

3 6 5 4 1 4
3

输出样例:

4 3 3 3 4 3

#include <stdio.h>
int main()
{
    int touzi[7][7]={0}; //创建6*6的图,第0列和第0行不考虑
    int res[6]; //记录最后一次投骰子的结果
    for(int i=1;i<=6;i++)
    {
        int num;
        scanf("%d",&num);
        touzi[num][i]=1; //第几列就是第几个骰子,每列记录各点数状态,选过的点数标记1
    }
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        for(int j=1;j<=6;j++)
        {
            for(int k=6;k>=1;k--)
            {
                if(touzi[k][j]==0)
                {
                    touzi[k][j]=1;
                    res[j-1]=k;
                    break;
                }
            }
        }
    }
    for(int k=0;k<6;k++)
    {
        printf("%d",res[k]);
        if(k!=5)
            printf(" ");
    }
    return 0;
}

注意事项:

如有疑问,欢迎提出。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花辞树dor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值