import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int t =sc.nextInt();
for(int i=0;i<t;i++)
{
int x=sc.nextInt(),a=sc.nextInt(),b=sc.nextInt(),ma=0,mb=0;
ma=x/a;
boolean isbreak=false;
for(;ma>0;ma--)
{
for(;mb<10;mb++)
{
if(ma*a+mb*b==x)
{
isbreak=true;
break;
}
}
if(isbreak==true)
{
break;
}
else if(isbreak==false){mb=0;}
}
if(isbreak==false){
System.out.println("-1");
}
else if(isbreak==true)
{
System.out.println(ma+mb);
}
}
}
}
}
我看每個測資都一樣 x=258 a=24 b=20 但是答案顯示26
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int t =sc.nextInt();
for(int i=0;i<t;i++)
{
int x=sc.nextInt(),a=sc.nextInt(),b=sc.nextInt(),ma=0,mb=0;
ma=x/a;
boolean isbreak=false;
for(;ma>0;ma--)
{
for(;mb<10;mb++)
{
if(ma*a+mb*b==x)
{
isbreak=true;
break;
}
}
if(isbreak==true)
{
break;
}
else if(isbreak==false){mb=0;}
}
if(isbreak==false){
System.out.println("-1");
}
else if(isbreak==true)
{
System.out.println(ma+mb);
}
}
}
}
}
我看每個測資都一樣 x=258 a=24 b=20 但是答案顯示26
1.為什麼要mb<10?應該是mb<=x/b
2.ma有可能是0
而且你的程式太複雜了,根本不需要內層的for迴圈,直接判斷x-ma*a是否能整除就可以了
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int t =sc.nextInt();
for(int i=0;i<t;i++)
{
int x=sc.nextInt(),a=sc.nextInt(),b=sc.nextInt(),ma=0,mb=0;
ma=x/a;
boolean isbreak=false;
for(;ma>0;ma--)
{
for(;mb<10;mb++)
{
if(ma*a+mb*b==x)
{
isbreak=true;
break;
}
}
if(isbreak==true)
{
break;
}
else if(isbreak==false){mb=0;}
}
if(isbreak==false){
System.out.println("-1");
}
else if(isbreak==true)
{
System.out.println(ma+mb);
}
}
}
}
}
我看每個測資都一樣 x=258 a=24 b=20 但是答案顯示26
1.為什麼要mb<10?應該是mb<=x/b2.ma有可能是0
而且你的程式太複雜了,根本不需要內層的for迴圈,直接判斷x-ma*a是否能整除就可以了
太感謝你了!!