CCF2017.09-1打酱油

问题描述
  小明带着N元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。
输入格式
  输入的第一行包含一个整数N,表示小明可用于买酱油的钱数。N是10的整数倍,N不超过300。
输出格式
  输出一个整数,表示小明最多可以得到多少瓶酱油。
样例输入
40
样例输出
5
样例说明
  把40元分成30元和10元,分别买3瓶和1瓶,其中3瓶送1瓶,共得到5瓶。
样例输入
80
样例输出
11
样例说明

  把80元分成30元和50元,分别买3瓶和5瓶,其中3瓶送1瓶,5瓶送2瓶,共得到11瓶。

#include <iostream>
using namespace std;
int main()
{
    int N=0,num_sauce=0;//钱数N,可以购买到的酱油数量num_sauce
    cin>>N;
    int num_fifty=0;//钱数N中有多少个50元
    int num_thirty=0;//钱数N中有多少个30元
    int remainder_fifty=0;//钱数N中有多少个50元剩下的余数
    int remainder_thirty=0;//钱数N除去若干个50元后剩下的钱中有多少个30元剩下的余数
    num_fifty=N/50;
    remainder_fifty=N%50;
    num_thirty=remainder_fifty/30;
    remainder_thirty=remainder_fifty%30;
    num_sauce=(num_fifty*7)+(num_thirty*4)+(remainder_thirty/10);//50元可以买到7瓶酱油,30元可以买到4瓶酱油,余下的钱每10元可以买到1瓶酱油
    cout<<num_sauce;
    return 0;
}


以下是使用 C++ 解决 CCF - CSP 201403 - 3 命令行选项问题的代码: ```cpp #include <bits/stdc++.h> using namespace std; int main() { std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); string ask; cin >> ask; map<char, int> mp; for (int i = 0; i < ask.size(); i++) { if (i + 1 < ask.size() && ask[i + 1] == &#39;:&#39;) { mp[ask[i]] = 2; i++; } else { mp[ask[i]] = 1; } } int n; cin >> n; cin.ignore(); string s, t; for (int i = 1; i <= n; i++) { getline(cin, s); stringstream ss(s); cout << "Case " << i << ": "; vector<string> v; map<char, string> res; while (ss >> t) { v.push_back(t); } for (int j = 1; j < v.size(); j++) { string tmp = v[j]; if (tmp.size() == 2 && tmp[0] == &#39;-&#39; && islower(tmp[1])) { char ch = tmp[1]; if (mp[ch] == 1) { res[ch] = "**"; } else if (mp[ch] == 2 && j + 1 < v.size()) { res[ch] = v[j + 1]; j++; } else { break; } } else { break; } } for (auto x : res) { cout << "-" << x.first << " "; if (x.second != "**") { cout << x.second << " "; } } cout << endl; } return 0; } ``` 这段代码的主要逻辑如下: 1. 读取第一行的格式字符串,确定每个选项是带参数还是不带参数,存储在 `map<char, int> mp` 中。 2. 读取测试用例的数量 `n`。 3. 对于每个测试用例,读取命令行输入,使用 `stringstream` 分割输入的字符串。 4. 遍历分割后的字符串,检查每个选项是否合法,并根据选项类型(带参数或不带参数)处理。 5. 将合法的选项及其参数存储在 `map<char, string> res` 中。 6. 按照升序输出合法的选项及其参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值