如何修改?
第1题 买水果 (课程8) 时限:1s 空间:256m
萌萌和瞳瞳各拿N元去买苹果和西瓜,已知每个苹果的价格是a、每个西瓜的价格是b。萌萌要求N元买苹果全部正好用完;瞳瞳的要求N元买西瓜后正好剩3元作为请人运输的费用。
如果N至少是100,请问N最少是多少?
输入格式
一行2个正整数:a和b,a范围在[1,20], b范围在[4,20]
#include
using namespace std;
int main()
{
int n,a,b;
cin>>a>>b;
while(1)
{
if(n%a==0 && n%b==3 || n>=100)
{
break;
}
n++;
}
cout<<n;
return 0;
}
怎么做?
这个判断条件 if(n%a==0 && n%b==3 || n>=100 )里的 || 改为&&即可。
n%a==0保证萌萌要求N元正好买完苹果;
n%b==3保证瞳瞳要求N元买完西瓜剩余3元;
然后n>=100保证N至少是100元.
逻辑运算符&&保证三个条件同时满足。
然后通过程序运行,当三个条件同时满足时即最小的n,然后程序执行if分支的break退出。
修改如下:
#include<iostream>
using namespace std;
int main()
{
int n=0,a,b;
cin>>a>>b;
while(1)
{
// n对a求余等于0说明 买完苹果正好n元
// n对b求余 等于3 说明买完西瓜正好剩余3元
// n>=100 这个是满足题目要求
//三个条件必须同时满足, 所以三个条件之间用的 逻辑与运算符&& 用于表示三个条件同时满足
if(n%a==0 && n%b==3 && n>=100)
{
break;
}
n++;
}
cout<<n;
return 0;
}