等差或等比数列求解答

由于小星同学上课不专心,今天布置了几道数学题目他不会解答了。怎么办呢?这下他可发愁了!请热心的你来他。

题目是给你一组有规律序列的前面3个整数,请你给出它后面跟着的3个整数,如:1,2,4,,,。这个是等比数列,后面应该是8,16,32。(等比数列可以简单理解为相邻两项的比值(商)一定)

如果是1,2,3,,,。这是个等差数列,后面应该是4,5,6。(等差数列可以简单理解为相邻两项的差值一定)

现在小星已经知道这串序列要么是等比数列,要么是等差数列。

看一下,核心吧:


a, b, c = map(int, input().split())

if b - a == c - b:  # 等差数列
    d = b - a
    print(c + d, c + 2 * d, c + 3 * d)
elif b % a == 0 and c % b == 0 and c // b == b // a:  # 等比数列
    r = b // a
    print(c * r, c * r * r, c * r * r * r)
else:
    print("输入的序列不是等差数列也不是等比数列")

#include<stdio.h>

int main()
{
int a1,a2,a3,a4,a5,a6;
scanf("%d%d%d",&a1,&a2,&a3);
if(a3-a2==a2-a1)
{
a4=a3+a2-a1;
a5=a4+a2-a1;
a6=a5+a2-a1;
}
else if(a3/a2==a2/a1)
{
a4=a3a2/a1;
a5=a4
a2/a1;
a6=a5*a2/a1;
}
printf("%d %d %d",a4,a5,a6);
getch();
}

#include<stdio.h>

int main()
{
int a1,a2,a3,a4,a5,a6;
scanf("%d%d%d",&a1,&a2,&a3);
if(a3-a2==a2-a1)
{
a4=a3+a2-a1;
a5=a4+a2-a1;
a6=a5+a2-a1;
}
else if(a3/a2==a2/a1)
{
a4=a3*a2/a1;
a5=a4*a2/a1;
a6=a5*a2/a1;
}
printf("%d %d %d",a4,a5,a6);
getch();
}