等差数列题目描述给一个整数数列,请判断是否为等差数列。 输入第一行是一个整数T(1≤T≤100),表示样例的个数。 每个样例第一行是一个整数N(3≤N≤10000),表示数列元素的个数。 第二行是N个整数,每个整数处于[1,1000000000]之间。 输出如果数列构成等差数列,输出"Yes";否则,输出"No"。 样例输入3 3 1 2 3 3 1 2 4 5 1 3 5 7 9 样例输出Yes No Yes |
||
原始代码如下:
#include<stdio.h>
int main()
{
int T;
scanf("%d", &T);
while (T--) {
int N;
scanf("%d", &N);
int ret = 1;
int a, b, d;
scanf("%d%d", &a, &b);
d = a - b;
N -= 2;
a = b;
while (N--) {
scanf("%d", &b);
if (a - b != d) {
ret = 0;
break;
}
a = b;
}
if (ret == 1)printf("Yes\n");
else printf("No\n");
}
return 0;
}</

本文探讨了如何使用希尔排序算法对输入的整数数列进行预处理,以提高判断等差数列的效率。通过实例展示了如何快速检查一个数列是否满足等差性质,并针对输入无序的情况进行了优化。
最低0.47元/天 解锁文章
5677





