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

计算各种各样的能力

杜高谊
2023-03-14

我正在尝试为一个大学项目实现一种使用for循环计算学院的方法。我写了一个for循环,它以两个步骤递增,而另一个for循环计算第一个for循环的每一个函数。

有人能指出我在哪里犯了错误吗?

package Cosinus;

public class MainCos {
     public static void main(String[] args) { 
         
         
         int fact=1;
        for(int number = 0; number <= 10; number += 2) {
              for(int i=1;i<=number;i++){
              fact=fact*i;
         }
         System.out.println("The Faculty of " + number + " is: " + fact);
        }
    }
}        

共有2个答案

池兴邦
2023-03-14

我知道第一次很难算出阶乘,但基本上,你需要把每个数字乘以下一个整数,以此类推。有很多方法可以解决这个问题,其中一种方法可以递归或迭代地创建一个方法。我更喜欢这里的迭代器,也许是for循环。

N阶乘你也可以说它是n!或n阶乘。现在S=5!1*2*3*4*5=120(十进制)。

        long fact = 1;
        for (long count = 2; count <= 10; count++) {
            fact = fact * count;
            System.out.println("The Faculty of " + count + " is: " + fact);
        }

弘涛
2023-03-14

如果你想计算偶数的阶乘,只需移动int fact=1 在for循环之间切换,以便为每个新编号重置:

for(int number = 0; number <= 10; number += 2) {
  int fact=1;
  for(int i=1;i<=number;i++){
    fact=fact*i;
   }
   System.out.println("The Faculty of " + number + " is: " + fact);
}

输出:

The Faculty of 0 is: 1
The Faculty of 2 is: 2
The Faculty of 4 is: 24
The Faculty of 6 is: 720
The Faculty of 8 is: 40320
The Faculty of 10 is: 3628800

不过,正如其他人所指出的,这里不需要嵌套循环。另一种方法是只使用外部循环,递增一个,并且只显示偶数的阶乘。我还添加了0的基本条件!=1:

int fact=0;
for(int number = 0; number <= 10; number++) {
  if (number == 0) {
    fact = 1; // by definition
  }
  else {
    fact = fact * number;  
  }
  if (number % 2 == 0) {
    System.out.println("The Faculty of " + number + " is: " + fact);
  }
}

产生相同的输出:

The Faculty of 0 is: 1
The Faculty of 2 is: 2
The Faculty of 4 is: 24
The Faculty of 6 is: 720
The Faculty of 8 is: 40320
The Faculty of 10 is: 3628800

 类似资料:
  • 我正在尝试为一个大学项目实现一种使用for循环计算学院的方法。我写了一个for循环,它以两个步骤递增,而另一个for循环计算第一个for循环的每一个函数。 有人能指出我在哪里犯了错误吗?

  • 文章信息 本文地址:http://blog.keras.io/building-autoencoders-in-keras.html 本文作者:Francois Chollet 什么是自动编码器(Autoencoder) 自动编码器是一种数据的压缩算法,其中数据的压缩和解压缩函数是1)数据相关的,2)有损的,3)从样本中自动学习的。在大部分提到自动编码器的场合,压缩和解压缩的函数是通过神经网络实现

  • 我有一个想法,就是在实现if/else时使用数组haves(question,ans)将答案与问题联系起来,以确保答案是正确的 这是解决这个问题的好方法吗?帮我plz

  • 本文向大家介绍JavaScript代码编写中各种各样的坑和填坑方法,包括了JavaScript代码编写中各种各样的坑和填坑方法的使用技巧和注意事项,需要的朋友参考一下 坑”这个字,在此的意思是“陷阱”。由于 JavaScript “弱语言”的性质,使得其在使用过程中异常的宽松灵活,但也极为容易“中招”。这些坑往往隐藏着,所以必须擦亮双眼,才能在学习与应用 JS 的道路上走的一帆风顺。 一、全局变量

  • 1.问题再现 (1)parseInt()最好不用 不要将 parseInt 当做转换 Number 和 Integer 的工具。 问题:默认,对小于 0.0000001 (1e-7) 的数字转换成 String 时,js会将其变成 科学记号法 ,再对这个数进行 parseInt 操作就会导致问题发生。即: parseInt(0.0000008) === 8 解析: 常见的问题有浮点数比较: co

  • 如果要成为一个有一定水平的程序员,算法是必须要会的。算法,让你的程序变得更有灵气。