用户定义的可被5整除的所有整数的总和

时间:2014-11-27 18:03:13

标签: java for-loop division

什么是无效的是总和部分。它不等于正确的数字。例如:用户输入25,所以总和应为75,但程序打印出50。

我的代码:

import java.util.Scanner;
public class SumH4
{
    public static void main(String[] args)
    {
    //define data
    int x;
    int sum;

    //scanner is needed
    Scanner sc = new Scanner(System.in);

    //get user data and initialize variables
    System.out.println("Please input a positive whole number.");
    x = sc.nextInt();
    sc.nextLine();
    sc.close();
    System.out.println();
    sum = 0;

    //do computation
    for(int a = 0; a < x; a = a + 1)
     {
        if(a%5==0)
        {
            sum = sum + a;
        }

     }

    //print results
    System.out.println("Sum = " + sum);

    }
}

3 个答案:

答案 0 :(得分:4)

您不包括用户输入的号码本身。只需将for循环更改为以下内容,即添加输入x

for (int a = 0; a <= x; a = a + 1) {

答案 1 :(得分:3)

更改

for(int a = 0; a < x; a = a + 1)

for(int a = 0; a <= x; a = a + 1)

目前你不包括25,那只能达到24,即a < x表示&#34;而a小于x&#34;,那么你想要&#34;而a小于等于x&#34;。

答案 2 :(得分:3)

您的循环测试应为<=(不是<),我建议您在需要时定义变量。最后,您不应close() Scanner System.in System.in因为关闭Scanner sc = new Scanner(System.in); System.out.println("Please input a positive whole number."); int x = sc.nextInt(); int sum = 0; for (int a = 0; a <= x; a++) { if (a % 5 == 0) { sum += a; } } // print results System.out.println("Sum = " + sum); ,如果您重构代码,可能会给您带来很多痛苦。所以,我会改变你的方法,如

{{1}}