用于在数组中存储阶乘的循环的java

用于在数组中存储阶乘的循环的java,java,arrays,for-loop,Java,Arrays,For Loop,我想做一个程序,计算1到5的阶乘,并将这些值存储在5的数组中 import java.util.*; public class factorialArray { public static void main(String [] args) { int factorialA[] = new int[5]; for (int i=1; i<6; i++) { int factorial = 1;

我想做一个程序,计算1到5的阶乘,并将这些值存储在5的数组中

import java.util.*;
public class factorialArray
{
    public static void main(String [] args)
    {
        int factorialA[] = new int[5];
        for (int i=1; i<6; i++)
        {
            int factorial = 1;
            for(int j=1; j<=i; j++)
            {
                factorial = factorial *j;
            }
            factorial = factorialA[i];
        }
        System.out.println(factorialA[3]);
    }
}
import java.util.*;
公共类阶乘数组
{
公共静态void main(字符串[]args)
{
int factorialA[]=新的int[5];

对于(inti=1;i首先,循环的条件从

for (int i=1; i<6; i++)
这不会对您的数组进行任何更改。我想您是有意这样做的

factorialA[i] = factorial;

首先,改变循环的条件

for (int i=1; i<6; i++)
这不会对您的数组进行任何更改。我想您是有意这样做的

factorialA[i] = factorial;
轻微更正:

public static void main(String [] args) { 
    int factorialA[] = new int[5]; 
    for (int i=0; i<5; i++) { 
       int factorial = 1; 
       for(int j=1; j<=i+1; j++) { 
          factorial = factorial *j; 
       } 
      factorialA[i] = factorial; 
    } 
    System.out.println(factorialA[3]); 
}
publicstaticvoidmain(字符串[]args){
int factorialA[]=新的int[5];
对于(int i=0;i轻微校正:

public static void main(String [] args) { 
    int factorialA[] = new int[5]; 
    for (int i=0; i<5; i++) { 
       int factorial = 1; 
       for(int j=1; j<=i+1; j++) { 
          factorial = factorial *j; 
       } 
      factorialA[i] = factorial; 
    } 
    System.out.println(factorialA[3]); 
}
publicstaticvoidmain(字符串[]args){
int factorialA[]=新的int[5];

对于(int i=0;i这里的问题在下面的代码中得到了解决。factorial=factorialA[i]赋值没有帮助。您需要将阶乘值存储在数组中,在这种情况下,将由factorialA[i]完成=factorial,还有一个索引问题,因为Java中的数组是基于0索引的。当您的代码运行时,我得到了ArrayIndexOutOfBounds异常。这在下面的代码中得到了修复。希望这有帮助:-)

publicstaticvoidmain(字符串[]args)
{
int factorialA[]=新的int[5];
对于(int i=0;i<5;i++)
{
整数阶乘=1;

对于(int j=1;j这里的问题在下面的代码中得到了解决。factorial=factorialA[i]赋值没有帮助。您需要将阶乘值存储在数组中,在这种情况下,将由factorialA[i]完成=factorial,还有一个索引问题,因为Java中的数组是基于0索引的。当您的代码运行时,我得到了ArrayIndexOutOfBounds异常。这在下面的代码中得到了修复。希望这有帮助:-)

publicstaticvoidmain(字符串[]args)
{
int factorialA[]=新的int[5];
对于(int i=0;i<5;i++)
{
整数阶乘=1;

对于(intj=1;j我想你在寻找这个

public class factorialArray {

    public static void main(String[] args) {
        int arr[] = {1,2,3,4,5};
        for(int i=1;i<5;i++) {
            arr[i] = factorial(i); 
        }

        for(int i=1;i<5;i++) {
            System.out.println(arr[i]); 
        }

    }

    public static int factorial(int number){  
          int i,fact=1;  

          for(i=1;i<=number;i++){    
              fact=fact*i;    
          }    
          return fact;   
         }  
}
公共类factorialArray{
公共静态void main(字符串[]args){
int arr[]={1,2,3,4,5};

对于(inti=1;i我想你在寻找这个

public class factorialArray {

    public static void main(String[] args) {
        int arr[] = {1,2,3,4,5};
        for(int i=1;i<5;i++) {
            arr[i] = factorial(i); 
        }

        for(int i=1;i<5;i++) {
            System.out.println(arr[i]); 
        }

    }

    public static int factorial(int number){  
          int i,fact=1;  

          for(i=1;i<=number;i++){    
              fact=fact*i;    
          }    
          return fact;   
         }  
}
公共类factorialArray{
公共静态void main(字符串[]args){
int arr[]={1,2,3,4,5};

对于(int i=1;i您需要进行一些更改,这些更改会产生
错误
。我在代码中已经提到了它们

这里您存储的是任何数字的
阶乘
数组的
索引处。因此,如果您需要存储
阶乘
静止数
N
,那么您需要访问
数组元素
1-N
索引,因此您需要数组大小为
N+1

您犯的另一个错误是这里的
factorial=factorial[i];
。因此,这里您根本没有操作
Array元素的值,这会导致初始
Array
,它的所有元素都是
0
。因此您需要将这里的赋值顺序更改为
factorial[i]=factorial

import java.util.*;
public class factorialArray
{
    public static void main(String [] args)
    {
        int factorialA[] = new int[6];      //Array-Size=Maximum Number+1; so here 5+1=6.
        for (int i=1; i<6; i++)
        {
            int factorial = 1;
            for(int j=1; j<=i; j++)
            {
                factorial = factorial *j;
            }
            factorialA[i] = factorial; //Here assignment should be done to the element of array.
        }
        System.out.println(factorialA[3]);
    }
}
import java.util.*;
公共类阶乘数组
{
公共静态void main(字符串[]args)
{
int factorialA[]=new int[6];//数组大小=最大数+1;所以这里5+1=6。

对于(int i=1;i您需要进行一些更改,这些更改会产生
错误
。我在代码中已经提到了它们

这里您存储的是任何数字的
阶乘
数组的
索引处。因此,如果您需要存储
阶乘
静止数
N
,那么您需要访问
数组元素
1-N
索引,因此您需要数组大小为
N+1

您犯的另一个错误是这里的
factorial=factorial[i];
。因此,这里您根本没有操作
Array元素的值,这会导致初始
Array
,它的所有元素都是
0
。因此您需要将这里的赋值顺序更改为
factorial[i]=factorial

import java.util.*;
public class factorialArray
{
    public static void main(String [] args)
    {
        int factorialA[] = new int[6];      //Array-Size=Maximum Number+1; so here 5+1=6.
        for (int i=1; i<6; i++)
        {
            int factorial = 1;
            for(int j=1; j<=i; j++)
            {
                factorial = factorial *j;
            }
            factorialA[i] = factorial; //Here assignment should be done to the element of array.
        }
        System.out.println(factorialA[3]);
    }
}
import java.util.*;
公共类阶乘数组
{
公共静态void main(字符串[]args)
{
int factorialA[]=new int[6];//数组大小=最大数+1;所以这里5+1=6。
对于(int i=1;i
我想打印出第三个第四个索引,如果im
正确理解数组。但是我得到0

当您使用
int factorialA[]=new int[5]
创建
int
数组时,数组元素将使用
0
值初始化,这是它正在打印的内容,因为您没有将计算出的阶乘值分配给数组,因此需要按如下所示进行更正:

factorialA[i] = factorial; //assign calculated value to the array element
此外,数组索引从
0
开始,因此将外部循环更改为:

for (int i=0; i<5; i++)
for(int i=0;i
我想打印出第三个第四个索引,如果im
正确理解数组。但是我得到0

当您使用
int factorialA[]=new int[5]
创建
int
数组时,数组元素将使用
0
值初始化,这是它正在打印的内容,因为您没有将计算出的阶乘值分配给数组,因此需要按如下所示进行更正:

factorialA[i] = factorial; //assign calculated value to the array element
此外,数组索引从
0
开始,因此将外部循环更改为:

for (int i=0; i<5; i++)

for(int i=0;i如果希望阶乘最大为n,则首先初始化长度为n+1的数组。假设希望阶乘最大为[5],则数组大小为阶乘[6]。当数组索引从0开始上升到n-1,其中n是数组的长度。

如果您想让阶乘上升到n,首先要初始化长度为n+1的数组。假设您想上升到阶乘[5],那么就有大小为阶乘[6]的数组。当数组索引从0开始上升到n-1,其中n是数组的长度。

是的,谢谢,但是