ALonPursuit


私信TA

用户名:uq_36082743939

访问量:1545

签 名:

等  级
排  名 10232
经  验 1101
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

    技巧解题,比方说输入的两个数为a,b。现在需要计算a,b组合买不到的最大数,先计算a*b,然后遍历a*b>=i>max_,判断是否能被i整除,便可得出买不到的最大数。至于为什么是小于等于a*b,进行简单的数学验算,并归纳,可得到是a*b。


注意事项:

参考代码:

#include<iostream>

using namespace std;

int main(){

    int a,b;

    cin>>a>>b;

    int max_=a>b?a:b;

    for(int i=a*b;i>max_;i--){

        int tmp=i;

        if(tmp%a==0||tmp%b==0)continue;

        bool flag=true;

        for(int j=1;j<=tmp/a+1;j++){

            for(int k=1;k<=tmp/b+1;k++){

                if(j*a+k*b==tmp){

                    flag=false;

                    break;

                }

            }

        }

        if(flag){

            cout<<i<<endl;

            break;

        }

    }

    return 0;

}


 

0.0分

6 人评分

  评论区

为什么最大数一定是在a*b以内
2021-10-24 23:02:46
小于a*b这个是怎么得到的
2021-02-24 14:57:19
  • «
  • 1
  • »