转载思路
①输入两个数,算作a,b
②题目中说到:最大不能买到的数量,也就是肯定在 a*b 之前的数字
③使一个数从 a*b开始向下寻找,最大嘛,找到一个就是那个最大的、符合要求的数字了
④在数字查找的循环再嵌套一次循环和判断
⑤令“要找的数字” - “a、b其中一个数 的 倍数”再判断是否能够除尽a、b另一个数,以此方法来来记录 “要找的数字”其中是否能够用a和b组合出来。并做记录。
⑥如果其中能够有包含的项,则继续循环向下寻找,如果找到”令输入的两个数字无法组合的“那么这个就是最大的数字了,也就是要找的那个数字
package 算法练习;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class 买不到的数目 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
//输入的两个数字
int a=in.nextInt();
int b=in.nextInt();
int max=a*b;
//利用式子ax+by
int x_max=1000;
int y_max=1000;
//ans
int ans=0;
List list=new ArrayList();
for(int i=0;i<x_max;i++)
{
for(int j=0;j<y_max;j++)
{
int cen=a*i+b*j;
list.add(cen);
}
}
// System.out.println(list);
for(int o=max;o>0;o--)
{
if(!list.contains(o))
{
ans=o;
break;
}
}
System.out.println(ans);
}
}
方法
我这里关于x_max和y_max,直接取值为1000。一个玄学的方法,到时候比赛中也可以这样确定。如果不确定怎么取值,直接取一个比较大的值,进行循环就好