|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目是
小明带着N
元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。
输入描述
一行,包含一个正整数N
,表示小明可用于买酱油的钱数。N
是10的整数倍,N
不超过300。
输出描述
一行,包含一个整数,表示小明最多可以得到多少瓶酱油。
我的代码是
#include<stdio.h>
int main()
{
int n;scanf("%d",&n);
int a,b,c;
c=n/10;
a=c/3;b=c/5;
int d,e;
d=a;e=b*2;
if(d>e) printf("%d",c+d);
else printf("%d",c+e);
}
错在哪了啊
题目中提到“每买3瓶送1瓶”和“每买5瓶送2瓶”,但是在代码中没有考虑到这些情况,导致输出结果总是少1。正确的代码应该考虑到这些情况,例如:
#include <stdio.h>
int main() {
int n, bottles;
scanf("%d", &n);
bottles = n / 10;
int remainder = bottles % 5;
int bonus = bottles / 5 * 2;
if (remainder >= 3) {
bonus++;
}
printf("%d\n", bottles + bonus);
return 0;
}
这个代码中,我们首先计算出小明可以买多少瓶酱油,然后计算出他可以获得的赠品数量。注意到赠品的规则是每买5瓶送2瓶或者每买3瓶送1瓶,因此我们需要计算出小明购买的瓶数对5取余数,判断他是否可以获得额外的1瓶赠品。最后将购买的瓶数和赠品数量相加即可。
|
|