24/5/1题解

洛谷P1085 不高兴的津津

#include<iostream>
using namespace std;

int main()
{
    int a[7][2];//七行两列的数组存放上课的小时数
    for (int i = 0; i < 7; i++)
    {
        for (int j = 0; j < 2; j++)
            cin >> a[i][j];
    }//输入
    //先初始化都置为零
    int hour[7] = {0};//用来存放每天上课的小时数量
    int day[7] = {0};//用来存放每天多于八小时的小时数量
    for (int i = 0; i < 7; i++)
    {
        hour[i] = a[i][0] + a[i][1];
        if (hour[i] > 8)
            day[i] = hour[i] - 8;
    }//求上课小时总数,和多于8 的小时数
    int max = day[0];//最大值
    int maxindex = 0;//最大值下标 初始化
    for (int i = 0; i < 7; i++)
    {
        if (max < day[i])
        {
            max = day[i];//循环遍历找出最大值
            maxindex = i;
        }
        //必须是小于,等于时不记录只记录前面那个小的序号
    }
    if(max == 0) //这时意味着每天没有超过八小时课程
    {
        cout<<0;//输出0
    }
    else
    {
        int weekday = maxindex + 1;//星期数和数组的下标相差1
        cout << weekday;//输出生气的一天
    }

    return 0;
}

洛谷P1425 小鱼的游泳时间

#include<iostream>
using namespace std;

int main()
{
    int hourStart, hourEnd, minuteStart, minuteEnd;
//开始的小时分钟,结束的小时分钟
    cin >> hourStart >> minuteStart >> hourEnd >> minuteEnd;
//输入
    int minute, hour;//最后要输出的小时和分钟
    hour = 0;//初始化
    minute = minuteEnd - minuteStart;//先算分钟
    if (minute < 0)//不够减
    {
        minute += 60;
        hour = -1;//借位
    }
    hour += hourEnd - hourStart;//再算小时
    cout << hour << " " << minute << endl;//打印输出
    return 0;
}

洛谷P5711闰年的判断

#include<iostream>
using namespace std;

int main()
{
    int year;
    cin>>year;
    if((year%4==0&&year%100!=0)||year%400==0)//闰年能除开4但是不能整除100,或者整除400
    cout<<1;
    else
    cout<<0;
    return 0;
}

洛谷P5710 小学数学N合一

/*# 【深基1-2】小学数学 N 合一

## 题目描述

### 问题 1

请输出 `I love Luogu!`

### 问题 2

这里有 $10$ 个苹果,小 A 拿走了 $2$ 个,Uim 拿走了 $4$ 个,小 B 拿走剩下的所有的苹果。我们想知道:

1. 小 A 和 Uim 两个人一共拿走多少苹果?
2. 小 B 能拿走多少苹果?

现在需要编写一个程序,输出两个数字作为答案,中间使用空格分开。




## 输入格式

输入一个正整数,表示第几个问题。

## 输出格式

根据所输入的问题编号,输出对应问题的答案。

## 样例 #1

### 样例输入 #1

```
2
```

### 样例输出 #1

```
6 4
```

## 提示

请解决以下小学数学题。你可以提交答案,也可以写一个程序。

对于本题来说,如果你不知道怎么输入,也可以这么抄:

```*/
#include<iostream>
#include<cmath>
// 填上你觉得需要的其他头文件
using namespace std;
int peach(int day)
{
    if (day == 4) return 1;
    return 2 * (1 + peach(day + 1));
}
int main() {
    int T;
    cin >> T;
    if (T == 1) {
        // 粘贴问题 1 的主函数代码,除了 return 0
        cout << "I love Luogu!";
    }
    else if (T == 2) {
        // 粘贴问题 2 的主函数代码,除了 return 0
        cout << 2 + 4 << " " << 10 - 2 - 4;
    }
    else if (T == 3) {
        // 请自行完成问题 3 的代码
/*### 问题 3

现在有 $14$ 个苹果。要均分给 $4$ 名同学,分不掉的苹果放回冰箱。请问:

1. 每位同学能分得几个苹果?
2. 一共分出去多少苹果?
3. 把几个苹果放回冰箱?*/
        int num = 14 / 4;
        int dnum = 4 * num;
        int remainNum = 14 - dnum;
        cout << num << endl;
        cout << dnum << endl;
        cout << remainNum << endl;

        //现在需要编写一个程序,输出三个数字作为答案,每个数字一行。

    }
    else if (T == 4) {
        // 请自行完成问题 4 的代码
        //### 问题 4

        //现在有 $500$ 毫升的肥宅快乐水
        //要均分给 $3$ 名同学,每位同学可以分到多少毫升
        //请输出一个数字作为输出。保留 $6$ 位有效数字,且不使用科学计数法。
        double volume = 500 / 3.0;
        printf("%.6g\n", volume);
    }


 else if (T == 5) {
     /*### 问题 5

     甲列火车长 $260$ 米,每秒行 $12$ 米;
     乙列火车长 $220$ 米,每秒行 $20$ 米,两车相向而行
     从两车车头相遇时开始计时,多长时间后两车车尾相离?
     已知答案是整数。
     */      cout << (260 + 220) / (12 + 20) << endl;
     // 请自行完成问题 5 的代码
    }
 else if (T == 6) {
     /*
     ### 问题 6

     一个长方形长宽分别是 $6 \text{ cm}$、$9 \
     text{ cm}$,求它的对角线长度($\text{cm}$)。
     直接使用 `cout` 输出。*/
     cout << sqrt(6 * 6 + 9 * 9) << endl;


     // 请自行完成问题 6 的代码
    }
 else if (T == 7) {
     /*
     ### 问题 7

     Uim 银行账户里面有 $100$ 元。经过了下面的操作:

     1. 往里面存了 $10$ 元;
     2. 购物花掉了 $20$ 元;
     3. 把里面的钱全部取出。

         请在每次操作后输出账户余额,并使用换行符隔开。*/
         cout << 100 + 10 << endl;
         cout << 100 + 10 - 20 << endl;
         cout << 0 << endl;
         // 请自行完成问题 7 的代码
    }
 else if (T == 8) {
     /*
     ### 问题 8

     当半径为 $r=5$,请输出圆的周长、面积和球体积。取 $\pi=3.141593$。请直接使用 `cout` 输出答案,每行一个数字。
     */
         cout<<3.141593*5*2<<endl;
         cout<<3.141593*5*5<<endl;
         cout<<4/3.0*3.141593*5*5*5<<endl;
             // 请自行完成问题 8 的代码
         } else if (T == 9) {
     /*
     ### 问题 9

     一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,
     又贪嘴多吃了一个;第二天他也刚好吃了剩余桃子的一半,
     贪嘴多吃了一个;第三天他又刚好吃了剩下的桃子的一半
     ,并贪嘴多吃了一个
     。第四天起来一看,发现桃子只剩下一个了。请问小猴买了几个桃子?
     */
        int num = peach(1);
        cout << num;

        // 请自行完成问题 9 的代码
        }
 else if (T == 10) {

            /*
            ### 问题 10

            洛谷的评测任务是单位时间内均匀增加的
            。$8$ 台评测机 $30$ 分钟可以刚好把评测
            队列中的程序评测完毕,
            $10$ 台评测机 $6$ 分钟可以刚好把评测队列中
            的程序评测完毕,
            请问几台评测机可以在 $10$ 分钟时刚好把评测队列中的程序评测完毕?
            */
            cout << 9 << endl;

            // 请自行完成问题 10 的代码
            }
 else if (T == 11) {
                /*
                ### 问题 11

                小 A 跑步速度 $5 \text{ m/s}$
                小 B 跑步速度 $8 \text{ m/s}$,
                小 B 在小 A 后面 $100 \text{ m}$
                他们同时起跑,请问需要多长时间小 B 可以追上小 A?输出一个数字表示答案
                ,使用 `cout` 直接输出。
                */      cout << 100 / 3.0 << endl;

                // 请自行完成问题 11 的代码
                }
 else if (T == 12) {
                    /*
                    ### 问题 12

                    大家都知道有 $26$ 个英文字母,其中 A 是第一个字母。现在请编程求出:

                    1. M 是字母表中的第几个字母?
                    2. 第 $18$ 个字母是什么?

                    输出一个数字和一个字母,使用换行隔开。

                    */
                    char c = 'A';
                    int i;
                    for (i = 1; i <= 26; i++)
                    {
                        if ('M' == c)
                        {
                            
                            break;
                        }
                        else c++;


                    }
                    cout << i << endl;
                    c = 'A';
                    for (i = 1; i <= 26; i++)
                    {
                        if (i == 18) break;
                        else c++;
                    }
                    cout << c << endl;

                    // 请自行完成问题 12 的代码
                    }
 else if (T == 13) {
                        /*

                        ### 问题 13

                        小 A 有两块球形橡皮泥,一个半径是 $4$,一个半径是 $10$
                        。他想把这两块橡皮泥揉在一起,然后塑造成一个正方体
                        ,请问这个正方体的棱长是多少?如果结果不是整数,
                        则舍去小数点之后的数字。取 $\pi = 3.141593$。
                        */
                        double v1 = 3.141593 * 4 / 3 * 4 * 4 * 4;
                        double v2 = 3.141593 * 10 * 10 * 10 * 4 / 3;
                        double v = v1 + v2;
                        int a = pow(v, 1.0 / 3);
                        cout << a << endl;

                        // 请自行完成问题 13 的代码
                        }
 else if (T == 14) {
                            /*
                            ### 问题 14

                            根据咕咕网校的预测,当课程定价为
                            $110$ 元时,会有 $10$ 人报名。
                            如果课程价格每降低 $1$ 元,就会多
                            $1$ 名报名者(反之亦然)。
                            如果希望总共能收到 $3500$ 元学费的话
                            ,那么应该定价多少呢
                            ?已知本题有两个答案符合要求
                            ,则取较小的那一个。如果这个答案不是整数
                                                ,则需四舍五入精确到整数。
                                                */
                            int wantMoney = 3500;
                            int price = 110;
                            int peopleNum = 10;

                            int sale1 = peopleNum * price;
                            int sale2 = peopleNum * price;
                            while (sale1 < 3500)
                            {
                                peopleNum++;
                                price--;
                                sale1 = peopleNum * price;
                            }
                            int people1 = peopleNum;
                            int price1 = price;
                            while (sale2 < 3500 && peopleNum >= 1)
                            {
                                peopleNum--;
                                price++;
                                sale2 = peopleNum * price;
                            }
                            int people2 = peopleNum;
                            int price2 = price;
                            int flag = 0;
                            if (sale1 == 3500) flag++;
                            if (sale2 == 3500) flag++;
                            switch (flag) {
                            case 2:
                                cout << price1 << endl;

                                break;
                            case 1:
                                if (sale1 == 3500) cout << 50 << endl;
                                if (sale2 == 3500) cout << price2 << endl;

                                break;
                            }
                            // 请自行完成问题 14 的代码
                            }
                            return 0;
}

问题十是牛吃草问题 鸡贼一点的办法就是 8台能完成30分钟的活 ,10台能完成6分钟的活;10分钟的活 肯定比8台多比10台少,所以一定为9台;

或者可以列方程 设原来有x个程序,每分钟增加y个程序,一台一分钟能干一个程序

x+30y=8×30

x+6y=10×6

x=15

y=7.5

设 a 台完成10分钟的活

15+10×7.5=a×10

所以a=9;

输出即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值