import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int b=sc.nextInt(); int n=sc.nextInt(); int t=1; int m=0; while(m!=n) { if(t%7<=5) m=(t/7)*(5*a+2*b)+a*(t%7); else m=(t/7)*(5*a+2*b)+(t%7-5)*b+5*a; t++; } System.out.println(t); } }为什么不对
时间: 2024-04-14 19:29:41 浏览: 156
java代码-import java.util.Scanner;
您的代码逻辑出现问题,导致结果不正确。代码中的问题在于,您在循环中判断m是否等于n,但是在计算m的过程中,没有进行判断是否超过n。另外,您在计算m的公式也有误,应该根据天数t的不同情况来计算m。以下是修正后的代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int n = sc.nextInt();
int t = 1;
int m = 0;
while (m < n) {
if (t % 7 <= 5) {
m = (t / 7) * (5 * a + 2 * b) + Math.min(a * (t % 7), n - (t / 7) * 5 * a - (t % 7) * b);
} else {
m = (t / 7) * (5 * a + 2 * b) + Math.min((t % 7 - 5) * b + 5 * a, n - (t / 7) * (5 * a + 2 * b));
}
t++;
}
System.out.println(t - 1);
}
}
```
修正后的代码中,在计算m的公式中使用了Math.min()函数来确保m不会超过n的值,同时在输出结果时,需要将循环次数t减1才是最终的结果。希望对您有帮助!如果还有其他问题,请随时提问。
阅读全文