#include<stdio.h>
int main()
{
int a[35],b[35],t,i,s[50],j,m,n[50];
scanf("%d",&t);
for(i=1;i<=t;i++)
{
scanf("%d",&a[i]);
scanf("%d",&b[i]);
scanf("%d",&n[i]);
}
for(i=1;i<=t;i++)
{
s[1]=a[i];
s[2]=b[i];
s[3]=a[i]+b[i];
if(n[i]==1)
{
printf("%d\n",a[i]);
continue;
}
if(n[i]==2)
{
printf("%d\n",b[i]);
continue;
}
if(n[i]==3)
{
printf("%d\n",s[3]);
continue;
}
m=3;
if(n[i]>2)
{
for(j=1;j<=n[i];j++)
{
if(m%2==1)
{
s[m]=s[m-1]+s[m-2];
m=m+1;
}
if(m%2==0)
{
s[m]=s[m-1]+s[m-2]+s[m-3];
m=m+1;
}
if((m-(1))==n[i])
{
printf("%d\n",s[m-(1)]);
}
}
}
}
return 0;
}
、、、、、、、、、、、、、、
网址:http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1962
能帮忙改下程序吗?
追答我能重写个吗...看着有点乱
#include
#define MAXN 40 // 开大点
int main()
{
// long long 的输入输出比较麻烦
// 在不同平台下不同
// 有时候是 %lld 有时候是 %I64d
// 一个不行就试试另一个
long long int f[MAXN]; // 目测会爆int,开了long long
int n, T;
int i, j;
scanf("%d", &T);
for (i = 1; i <= T; ++i)
{
scanf("%lld%lld%d", &f[1], &f[2], &n);
for (j = 3; j <= n; ++j)
{
if (j % 2 == 1)
f[j] = f[j-1] + f[j-2];
else
f[j] = f[j-1] + f[j-2] + f[j-3];
}
printf("%lld\n", f[n]);
}
return 0;
}
下面程序为什么在ACM中出现runtime error (access violation
第一:数组开得太大,超出了栈的范围,造成栈溢出 第二:scanf 和printf是头文件cstdio的函数 第三:memset是头文件cstring或者memset的函数 所以就re了 望采纳!
...Error at Test 1 (ACCESS_VIOLATION)的,程序和网址在下面,求大神...
} 这是你出问题的地方 。 你的有点太复杂了, 这里的m完全是多余的。你这里的话,m会不断累加。比如m=3.由于 m%2==1, 在这个分支里, m=m+1了,出来后,m=4,他不会回到for.. 这里,他会继续 if(m%2==0) 继续做。出来后m=5 当n[i]=3时,他还会继续循环,由于有j<=n[...
Runtime Error(ACCESS_VIOLATION) 总是出现 跪求解答
Runtime Error 就是ACM中常说的RE,出现这种错误往往是数组越界造成的,你应该检查数组开的是否足够大,或者在程序处理过程中是否存在数组下表越界的情况。由于你没有说具体是那道题,因此我也无法提供具体的帮助。
如何解决ACM中ACCESS_VIOLATION的问题
ACCESS_VIOLATION的意思是您的程序想从一些非法的地址空间读取或向其中写入内容。一般例如指针、数组下标越界都会造成这个错误的。造成这个问题的原因基本上是因为数组开得太小了。不过数组开得小这是个相对的概念,比如你的程序必须要开int a[100000]这样大的数组,如果你把它在局部变量中开肯定会被编译...
...为什么总是提示Runtime Error(ACCESS_VIOLATION),我测试结果没问题...
Runtime Error一般是数组越界, 可能你数组定义小了
acm运行时显示RUNTIME_ERROR [ACCESS_VIOLATION,怎么解决
runtime error (运行时错误)就是程序运行到一半,程序就崩溃了。比如说:①除以零 ②数组越界:int a[3]; a[10000000]=10;③指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10;④使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free...
Runtime Error(ACCESS_VIOLATION)
runtime error 就是acm中常说的re,出现这种错误往往是数组越界造成的,你应该检查数组开的是否足够大,或者在程序处理过程中是否存在数组下表越界的情况。由于你没有说具体是那道题,因此我也无法提供具体的帮助。
杭电acm1003为什么都过不了,显示Runtime Error(ACCESS_VIOLATION)
你的 mm 没有赋初值,所以会Runtime Error 还有就是 while的循环结束条件不足,如果到最后 m还是没有==0你就错了 这是ac的代码 include
...为什么会出现 runtime error(access_violation)拜托各位大神_百度...
runtime error(access_violation)是运行时错误,非法访问内存,比如数组越界或者堆栈溢出。 看看题目要求: Input contains multiple test cases. Each test case starts with a number N ( 0 < N <= 1000 ) -- the total number of balloons distributed. The next N lines contain one color each...
为什么会出现ACM Runtime Error
一般是数组出界了