package Basics;
import java.util.Scanner;
public class ForLoop {
public static void main(String args[]){
Scanner Jee = new Scanner(System.in);
int Final = 0;
int HowManyRounds = 1;
for (int counter = 1; counter <= HowManyRounds; counter++){
System.out.println("Type your boundary: ");
int Limit = Jee.nextInt();
System.out.println("Type the number which you want the sum of all multiples in given boundary: ");
int number = Jee.nextInt();
System.out.println("Type your starting number: ");
int StartingNumber = Jee.nextInt();
for(int Answer = StartingNumber; Answer <= Limit;Answer += number){
Final += Answer;
}
}
System.out.println(Final);
Jee.close();
}
}
我得到了错误的答案。我不知道为什么。当我输入 1000 作为边界 5 的轮次和 0 作为起始数字时,我应该得到 99500 但我得到 100500 当我输入 1000 3 0 时,我得到了正确的答案,而我得到了相同的答案99 3 0...
输入您的边界: 1000 输入您想要给定边界中所有倍数总和的数字: 5 输入您的起始号码: 0 100500
输入您的边界: 1000 输入您想要给定边界中所有倍数总和的数字: 3 输入您的起始号码: 0 166833
输入您的边界: 999 输入您想要给定边界中所有倍数总和的数字: 3 输入您的起始号码: 0 166833
最佳答案
如果您在第一种情况下期望得到 99500 的答案,这可能意味着您不想在操作中包含限制本身(您现在正在执行此操作)。尝试更改 for 循环中的条件以回答 < limit (而不是 <=):
for(int Answer = StartingNumber; Answer < Limit;Answer += number){
[...]
关于java - 代码错误。当答案完美时却得到错误的答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20583628/