判断一个数i和m,n的大小,如果大于等于任意一个,然后再去判断i-m或i-n是否能够用m,n来表示
因此需要开一个数组,从i=1开始遍历。
然后再倒着从max来找最大不能表示的。
注意这个max是怎么得出来的,1000000可以,100000也可以
#include<iostream> using namespace std; //1000000 const int MAX=1000000; int a[MAX]={0}; int main() { int n,m; cin>>n>>m; a[0]=1; for(int i=1;i<=MAX;i++) { if(i>=n&&a[i-n]) a[i]=1; else if(i>=m&&a[i-m]) a[i]=1; } int t=0; for(int i=MAX;i>=0;i--) { if(!a[i]) { t=i; break; } } cout<<t<<endl; return 0; }