这是一道十分简单的GESP真题,大佬勿入。
描述
开学了,小明来到文具店选购文具。签字笔 2 元一支,他需要 X 支;记事本 5 元一本,他需要 Y 本;直尺 3 元一把,他需要 Z 把。小明手里有 Q 元钱。请你通过编程帮小明算算,他手里的钱是否够买他需要的文具。
输入描述
第一行包含一个正整数,是小明购买签字笔的数量。约定 1≤X≤10。
第二行包含一个正整数,是小明购买记事本的数量。约定 1≤Y≤10。
第三行包含一个正整数,是小明购买直尺的数量。约定 1≤Z≤10。
第四行包含一个正整数 Q,是小明手里的钱数(单位:元)。
输出描述
输出 2 行。如果小明手里的钱够买他需要的文具,则第一行输出 Yes
,第二行输出小明会剩下的钱数(单位:元);否则,第一行输出 No
,第二行输出小明缺少的钱数(单位:元)。
样例输入 1
1
1
1
20
样例输出 1
Yes
10
样例输入 2
1
1
1
5
样例输出 2
No
5
以上是题目的全部信息,真题参考至Hcode OnlineJudge ,点击即可。
思路如下:
首先, 设定变量,题中含有四个变量:签字笔的数量 , 记事本的本数和尺子的数量以及带的总钱数。输入后,去写判断,判断所需钱数是否小于等于总钱数。判断语句:
if(2 * x + 5 * y + 3 * z <= q)
然后依照输出描述去写输出。完整代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x , y , z , q;
cin >> x >> y >> z >> q;
if(2 * x + 5 * y + 3 * z <= q)
{
cout << "Yes" << endl << q - (2 * x + 5 * y + 3 * z);
}
else
{
cout << "No" << endl << 2 * x + 5 * y + 3 * z - q;
}
return 0;
}
有用自取,取材来自xdf.oj,Hcode OnlineJudge。如果不满意或有不同意见可私信。(给个点赞吧,第一次发)