java - 代码错误。当答案完美时却得到错误的答案?

标签 java

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/

相关文章:

java - <c :set var ="s" value ="class=\"selected\"" scope ="request"/> sets unexpected String in jSTL

java - SQL 连接异常 - 驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server 建立安全连接

java - 使用加法、减法或乘法可以使 5 个数字等于目标数字吗

java - 如何禁用 OnClickListerners

java - 为什么我的字符串索引超出范围?

Java 版本的 MVVM?

java - 无法使用 Webdriver 和 Java 获取 xpathcount

java - 如何使用JCommander

java - 如何确定 java.lang.ArrayIndexOutOfBoundsException 原因?

java - 加载JAVA设置后更新GUI组件