凑数公式:最大凑不出数m=(p-1)(q-1)-1
裴蜀定理:若p,q最大公约数为d,那么一定存在整数a,b使ap+bq=d,若ab互质,则存在xy使ax+by=1.
打表代码:
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int n,k;
bool dfs(int m,int p,int q)
{
if(!m)
return true;
if(m>=q && dfs(m-q,p,q))//不同方向拆解
return true;
if(m>=p && dfs(m-p,p,q))
return true;
return false;
}
int main()
{
int p,q;
cin>>p>>q;
int res=0;
for(int i=1;i<=1000;i++)
{
if(!dfs(i,p,q))//这个数凑不成的话
{
res=i;
}
}
cout<<res<<endl;//找到最大的res
return 0;
}