当前位置: 首页 > 知识库问答 >
问题:

将返回0的循环java的数字相乘[已关闭]

左丘成业
2023-03-14

我试着取一个数字(n),然后乘以它前面的每一个数字,输入4,你得到(1x2x3x4)=24。我的代码返回0。我有一个像这样的附加工作。有什么想法吗?

public static int multiplyTooNum() 
    {
        Scanner myIn = new Scanner(System.in);          
        int n;
                    
        System.out.println("Please enter a number");    
        n = myIn.nextInt();
        myIn.nextLine();
        int sum = 0;
        
        for (int i=0; i<n; i++)
        {
            sum = sum * i;
        }                   
        
        int result = sum*n;
        System.out.println(result);
        myIn.close();
        return result;
    }

共有2个答案

东郭腾
2023-03-14
    for (int i=0; i<n; i++)
    {
        sum = sum * i;
    }  

问题是在这一部分,你从0开始,所以每次求和都是0,它会再次相乘。我建议您学习调试,并在循环中逐步找出问题。

景令秋
2023-03-14

在乘法中,累加变量不被称为sum。它被称为产品。单词sum仅用于加法。

现在,继续你的问题:

如果你还记得你的小学数学,任何乘以零的结果都是零。

这就是你最终得到零分的原因。

因此,为了解决这个问题,您必须用1而不是0初始化您的产品,然后使您的for循环从索引1开始计数,而不是0。

 类似资料:
  • 问题内容: 我试图除以2计数以返回一个百分比。 返回以下查询: 我应该应聘演员吗? 问题答案: 我会用两个s来做不同的事情:

  • 有人请解释一下。为什么下面的程序产生16个?

  • 你好,有人能帮我在java中使用我的当循环代码吗?我似乎在这里找不到解决方案,我希望有人能推荐或找到一个解决方案,我如何才能创建像(1, -2, 3, -4, 5, -6)这样的正确输出。谢谢!

  • 问题内容: 今天,有人陪我一起滥用Java 中的关键字。我编写了一个简单的循环来验证数组中是否存在某些内容。假设是一个length数组,这是我的代码: 现在有人告诉我这不是一个很好的编程,因为我在循环内使用了该语句,这将导致垃圾回收发生故障。因此,更好的代码将是: 问题是我无法正确解释为什么第一个for循环不是一个好习惯。有人可以给我一个解释吗? 问题答案: 现在有人告诉我这不是一个很好的编程,因

  • loop 有个用途是尝试一个操作直到成功为止。若操作返回一个值,则可能需要将其传递给代码的其余部分:将该值放在 break 之后,并由 loop 表达式返回。 fn main() { let mut counter = 0; let result = loop { counter += 1; if counter == 10 {

  • 我正在研究CodeChef中的一个问题,我需要计算n个数字的阶乘。 用户输入一个数字,该数字确定要对多少整数执行阶乘计算,然后输入要计算的数字。 我的问题是乘法本身。例如,如果我有一个int==5,那么结果将是20(它将仅通过最后一个阶乘计算n,而不是所有阶乘) 这就是问题所在: 外部循环定义要执行的计算数量。 内部循环通过迭代numberToProcess的每个索引并将其乘以每个小于要计算的数字