- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
public static void main(String[] args) {
int n = 46;
int [] arr = new int[n];
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[3]);
}
My output is coming as 6 , but in real it should be 7.
arr[1] = 1 way.
arr[2] = 1,1 or 2
arr[3] = 1,1,1 ; 2,1 ; 1,2 ; 3
so in total the answer should be 7, where i am getting wrong??
最佳答案
您的 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
:
public static void main(String[] args) {
int n = 46;
int [] arr = new int[<b>n+1</b>];
<b>arr[0] = 1;</b>
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[<b>n</b>]);
}
关于java - 使用第 1、2 或 3 步计算到达第 4 个楼梯的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58471877/
我在 Hackerrank 中做以下问题: https://www.hackerrank.com/challenges/staircase?h_r=next-challenge&h_v=zen 基本上
每当我编写需要大量条件的代码时,我都会这样做: if foo: if bar: if foobar: if barfoo: if foobarfoo:
在我使用 Promise 和 Typescript 中的 async/await 语法之前,如下所示 const fooData = await AsyncFooData(); const barDa
我是一名优秀的程序员,十分优秀!