Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用步骤1、2或3计算到达第四级楼梯的方式_Java_Algorithm_Dynamic - Fatal编程技术网

Java 使用步骤1、2或3计算到达第四级楼梯的方式

Java 使用步骤1、2或3计算到达第四级楼梯的方式,java,algorithm,dynamic,Java,Algorithm,Dynamic,所以总的答案应该是7,我错在哪里了?? 您的for循环以i=3开始,但您已经填写了res[3]。如果到达3的方法数与硬编码值arr[3]=4相同,则这不是问题,但它不是 实际上,您从未将res[0]设置为1,因此,它将res[3]=res[2]+res[1]+res[0]计算为3,而不是4 此外,您还返回了res[3]而不是res[n],并且应该初始化长度为n+1的数组 因此,最小的修正是将res[0]设置为1: arr[1] = 1 way. arr[2] = 1,1 or 2 arr[3]

所以总的答案应该是7,我错在哪里了??


您的
for
循环以
i=3
开始,但您已经填写了
res[3]
。如果到达
3
的方法数与硬编码值
arr[3]=4相同,则这不是问题,但它不是

实际上,您从未将
res[0]
设置为
1
,因此,它将
res[3]=res[2]+res[1]+res[0]
计算为
3
,而不是
4

此外,您还返回了
res[3]
而不是
res[n]
,并且应该初始化长度为
n+1
的数组

因此,最小的修正是将
res[0]
设置为
1

arr[1] = 1 way.
arr[2] = 1,1 or 2 
arr[3] = 1,1,1 ; 2,1 ; 1,2 ; 3 
publicstaticvoidmain(字符串[]args){
int n=46;
int[]arr=新int[n+1];
arr[0]=1;
arr[1]=1;
arr[2]=2;
arr[3]=4;
对于(int i=3;i}
因为当for i=3运行时,它正在添加arr[2]+arr[1]+arr[0],而您尚未定义arr[0],因此它正在将arr[3]更新为3。当arr[4]=3+2+1=6时
arr[1] = 1 way.
arr[2] = 1,1 or 2 
arr[3] = 1,1,1 ; 2,1 ; 1,2 ; 3 
public static void main(String[] args) {
    int n = 46;
    int [] arr = new int[n+1];
    arr[0] = 1;
    arr[1] = 1;
    arr[2] = 2;
    arr[3] = 4;
    for(int i = 3; i < n; i++){
        arr[i]= arr[i-1]+arr[i-2]+arr[i-3];
    }
    System.out.println(arr[n]);
}