用于在数组中存储阶乘的循环的java
我想做一个程序,计算1到5的阶乘,并将这些值存储在5的数组中用于在数组中存储阶乘的循环的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;
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是数组的长度。是的,谢谢,但是