题目:
给定一个长度为n的非负整数序列n<=100000,只能进行一种操作:选择一个数(不是最后一个)把ai和a(i+1)同时减少1。 问能否经过有限次这样的操作把这个数列变为全0的数列。
输入:长度为n的数组 每个数是正整数
输出:yes 或 no
ps:此题目来自为学论坛
自己写的感觉正确的代码
#include<stdio.h>
#define n_MAX 100000
int fun(int n,int a[]);
int main(){
int n;
scanf("%d",&n);
if(n<=0||n>n_MAX)
exit(0);
int a[n];
int i;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
fun(n,a);
return 0;
}
int fun(int n,int a[])
{
if(n==1)
printf("yes\n");
else{
int i;
for(i=0;i<n-1;i++){
a[i+1]=a[i+1]-a[i];
}
if(a[n-1]==0)
printf("yes\n");
else
printf("no\n");
}
}