小蒜的回家作业

编程入门 行业动态 更新时间:2024-10-09 07:22:56

小蒜的回家<a href=https://www.elefans.com/category/jswz/34/1771149.html style=作业"/>

小蒜的回家作业

小蒜的回家作业

计蒜客 - T1293

小蒜的家庭作业里有很多数列填空练习。

填空练习的要求是:已知数列的前四项,填出第五项。因为已经知道这些数列只可能是等差或等比数列,她决定写一个程式来完成这些练习。

输入格式
第一行是数列的数目

(
0



20
)

以下每行均包含四个整数,表示数列的前四项。

约定数列的前五项均为不大于
10
5
的自然数,等比数列的比值也是自然数。

输出格式
对输入的每个数列,输出它的前五项。

样本输入
2
1 2 3 4
1 2 4 8
样本输出
1 2 3 4 5
1 2 4 8 16

题意描述:给你多组数据,每组给4个数,它可能是等比数列,也可能是等差数列,输出该数列的前五位数
解题思路:先吧前两个数相减或者相除的结果存入另外两个数中,然后用两个for循环判断后每一个数与前一个数是等差还是等比关系,即拿每一个数与前一个数相减相除,如果是等差再定义一个数表示是等差数列,等比就定义为另一个数,然后把前四个数输出来,如果是等差,就把第四个数加上前面算的差值,如果是等比,就把第四个数乘以前面算的等比值
易错分析:注意数组定义。
AC
#include<stdio.h>
#include<string.h>
int f[1005000];
int main(void)
{int t,a,b,p,find;scanf("%d",&t);while(t--){memset(f,0,sizeof(f));find=0;for(int i=1;i<=4;i++){scanf("%d",&f[i]);}a=f[2]-f[1];b=f[2]/f[1];for(int i=2;i<=4;i++){for(int j=1;j<i;j++){if(f[j]+a==f[i]){find=1;}else if(b*f[j]==f[i]){	find=0;}}}for(int i=1;i<=4;i++){printf("%d ",f[i]);	}	if(find==1)printf("%d\n",f[4]+a);elseprintf("%d\n",f[4]*b);}return 0;
}

更多推荐

小蒜的回家作业

本文发布于:2024-03-23 01:44:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1738992.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:作业

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!