关于#这个#的问题,如何解决?

如何修改?
第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;
}

img