2018/4/11
// 简单来说就是取两头中的一个数,然后数剩下的数每两个数之间的空格数
// 两头的数的取法:取离队伍最近的数
#include <iostream>
using namespace std;
int rabbits[505];
int main(){
int t;
cin >> t;
int n;
while(t--){
cin >> n;
for(int i = 0; i < n; i++)
cin >> rabbits[i];
int sum = 0;
if(rabbits[1] - rabbits[0] < rabbits[n-1] - rabbits[n-2])
for(int i = n - 1; i >= 2; i--)
sum += rabbits[i]-1 - rabbits[i - 1];
else
for(int i = 0; i < n-2; i++) // 注意这儿小于n-2,开始是小于等于,写错了
// 去掉末尾n-1后,最后的是n-2,所以遍历到n-3
sum += rabbits[i+1]-1 - rabbits[i];
cout << sum << endl;
}
return 0;
}
该程序读取一个兔子序列,计算并输出除两端外,每对相邻兔子间的距离之和。它首先比较第二只和第一只兔子的距离与最后两只兔子的距离,然后根据较小的距离进行遍历计算。
273

被折叠的 条评论
为什么被折叠?



