【发布时间】:2017-11-30 06:55:05
【问题描述】:
这里是新的。 我正在尝试解决这个问题here。 我正在使用 java,但我不知道为什么它在大多数测试用例中都失败了。这是我的解决方案
public class Main{
public static void main(String[] args) {
int k,n;
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
k = sc.nextInt();
long ans;
long term[]=new long[n];
for(int i=0;i<n;i++)
{
if(i<k)
term[i]=1;
else if(i==k)
term[i]=k;
else
{
term[i]=0;
for(int j=i-k;j<i;j++)
term[i]+=term[j];
}
}
ans=term[n-1]%1000000007;
System.out.println(ans);
}
}
我通过了 4 个测试用例,但在其他测试用例中失败了。我似乎无法弄清楚为什么。 类似的解决方案已被接受,即this。
任何帮助将不胜感激。谢谢:)
【问题讨论】:
-
是否足够长以容纳条款?
-
这些术语很可能太大而无法容纳很长时间,这就是为什么您将每个术语链接到 1000000007 的解决方案(考虑到
(a%b + c%b) % b == (a+c) % b的方式)