鲨鱼辣椒说你很菜 2021-10-21 14:23 采纳率: 85.7%
浏览 36
已结题

请教一个洛谷得题目,一直不给过,但是程序跑起来没有问题

题目描述
P需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 33种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P决定只买同一种包装的铅笔。

商店不允许将铅笔的包装拆开,因此P可能需要购买超过nn支铅笔才够给小朋 友们发礼物。

现在P想知道,在商店每种包装的数量都足够的情况下,要买够至少nn支铅笔最少需要花费多少钱。

输入格式
第一行包含一个正整数nn,表示需要的铅笔数量。

接下来三行,每行用22个正整数描述一种包装的铅笔:其中第11个整数表示这种 包装内铅笔的数量,第22个整数表示这种包装的价格。

保证所有的77个数都是不超过1000010000的正整数。

输出格式
11个整数,表示P最少需要花费的钱。

输入:
57
2 2
50 30
30 27

输出:
54


#include<iostream>
#include<math.h>
using namespace std;
int main() {
    int need, pencle, price, spend, min = 99999;
    //输入需要的铅笔数量
    cin >> need;
    if (need > 10000 )
    {
        cout << "错误" << endl;
        exit(1);
    }
    //循环输入3种不同包装铅笔一包得数量和价格
    for (int i = 1;i < 4;i++)
    {
        cin >> pencle >> price;
        //如果七个数字任意一个大于10000就报错
        if (pencle > 10000 || price > 10000 || need < 1 || pencle < 1 || price < 1)
        {
            cout << "错误" << endl;
            exit(1);
        }
        //计算每一种规格得铅笔所需价格
        if (need%pencle == 0)
        {
            spend = need / pencle * price;
        }
        else
        {
            spend = (need / pencle + 1) * price;
        }
        //找出最小得花费,如果出现更小值就覆盖之前的min
        if (min > spend)
        {
            min = spend;
        }
    }
    //输出最小的花费值
    cout << min << endl;
    system("pause");
    return 0;
}
  • 写回答

1条回答 默认 最新

  • -Undefined_ 2021-10-21 14:40
    关注
    
    #include<iostream>
    #include<cmath>
    using namespace std;
    int main() {
        int need, pencle, price, spend, min = -1;
        //输入需要的铅笔数量
        cin >> need;
        //循环输入3种不同包装铅笔一包得数量和价格
        for (int i = 1; i < 4; i++) {
            cin >> pencle >> price;
            //计算每一种规格得铅笔所需价格
            if (need%pencle == 0) {
                spend = need / pencle * price;
            } else {
                spend = (need / pencle + 1) * price;
            }
            //找出最小得花费,如果出现更小值就覆盖之前的min
            if(min==-1) min=spend;
            else if (min > spend) {
                min = spend;
            }
        }
        //输出最小的花费值
        cout << min;
        return 0;
    }
    

    觉得有用的话采纳一下哈

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月21日
  • 已采纳回答 10月21日
  • 创建了问题 10月21日

悬赏问题

  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿