这里新的。 我正在努力解决这个问题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。
任何帮助将不胜感激。谢谢:))
答案 0 :(得分:0)
import java.util。*; 公共课主要{
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];
term[i]%=1000000007;
}
}
}
ans=term[n-1]%1000000007;
System.out.println(ans);
}
}
它工作并通过了所有测试用例(这个解决方案也由njzk2说)