关于斐波那契数列的编程题求助

问题描述:

关于斐波那契数列的编程题求助
Description
一个三元斐波纳奇数列定义为如下递归式:
A[i] = A[i-1] + A[i-2] + A[i-3] (i >= 3)
给你一个数列A,其中包含一个且只有一个-1,你必须把这个-1替换成一个正数N使得A数列成为一个三元斐波纳奇数列.
如果不存在合法的N,输出-1.\x05\x05
Input
第1行:整数T(1≤T≤10)为问题数
第2 ∽ T+1行:每行有若干个数,第一个数表示A数列的大小M(4≤M≤20),后面紧接着M个数,表示A数列,其每项的值在1~1000000之间(除唯一的那个-1之外).\x05\x05
Output
对于每个问题,输出一行问题的编号(0开始编号,格式:case #0:等),然后对于每组数据,在一行中输出N,如果不存在合法的N,输出-1.
这是我写的程序,提交后不对,不知道错在哪里,
#include
long long int a[22];
int main()
{
int t,ii;
int n,i,sign;
long long int tmp,ans;
scanf("%d",&t);
for(ii=0;ii

很明显你错了.你一开始就从i=4开始了.
如果i=-1在i=1,2,3,你这些都没有考虑到.把这三种情况考虑进去吧.
还有那个数组没必要用long long 类型.int类型足够了,那个有9位数字.