题解 CF328A 【IQ Test】

· · 题解

这题也不算太难啦qwq。

首先,判断等差数列。

等差数列其实就是相邻两个数之间的差相等的数列。比如,如果 a,b,c 满足 a-b=b-c,那么 a,b,c 成等差数列。

直接移项,不难看出 a+c=2b

所以判断等差数列就可以直接判断了。

等比数列其实差不多,还是上面的 a,b,c,如果 \dfrac{a}{b}=\dfrac{b}{c},那么 a,b,c 成等比数列。

随便变形一下就可以看出来 ac=b^2,也是直接判断。

那么输出下一项呢?

Code:

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<vector>
#include<cmath>

using namespace std;

int a,b,c,d;

int main(void){

    scanf("%d%d%d%d",&a,&b,&c,&d);
    if(a+c==b*2&&b+d==c*2)printf("%d\n",d+(b-a));
    else if(a*c==b*b&&b*d==c*c)printf("%d\n",((d*d)%c)?42:(d*d/c));
    else puts("42");

    return 0;
}