ACM pku 1658 解题报告(另一种输入输出方式)

本文介绍了一个简单的程序设计解决方案,用于解决数列填空问题。该方案能够根据数列的前四项判断其为等差或等比数列,并计算出第五项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Eva's Problem
Time Limit:1000MS  Memory Limit:10000K
Total Submit:3235 Accepted:1733

Description
Eva的家庭作业里有很多数列填空练习。填空练习的要求是:已知数列的前四项,填出第五项。因为已经知道这些数列只可能是等差或等比数列,她决定写一个程序来完成这些练习。

Input
第一行是数列的数目t(0 <= t <= 20)。以下每行均包含四个整数,表示数列的前四项。约定数列的前五项均为不大于10^5的自然数,等比数列的比值也是自然数。

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

Sample Input


2
1 2 3 4
1 2 4 8

Sample Output


1 2 3 4 5
1 2 4 8 16

Source
POJ Monthly--2004.05.15 Null


 

从前总是在输入全部完成后,再将结果一起输出。这次不知闹的是什么鬼,那样输出老是不行,就试得用输入后立刻输出的方式,成功了。

代码如下:

main()
{
 int count;
 int i,j,ans;
 int num[20];

 scanf("%d",&count);

 for(i=0;i<count;i++)
 {
 scanf("%d%d%d%d",&num[0],&num[1],&num[2],&num[3]);
 
    if(  ( (num[1]-num[0]) == (num[2]-num[1]) )  && ( (num[2]-num[1]) == (num[3]-num[2]) ) ){
            ans=2*num[3]-num[2];           
   }else{
     ans=num[3]*num[3]/num[2];
   }

 printf("%d %d %d %d %d/n",num[0],num[1],num[2],num[3],ans);

 }

}


终于知道闹的是什么鬼了!本机测试的时候把输入原样输出,忘了删掉了!

代码如下(待输入全部完成后再输出的):

main()
{
 int count;
 int i;
 int ary[1000][20];

 scanf("%d",&count);

 for(i=0;i<count;i++)
 {
  scanf("%d%d%d%d",&ary[i][0],&ary[i][1],&ary[i][2],&ary[i][3]);
 }
 for(i=0;i<count;i++)
 {

  if(  ( (ary[i][1]-ary[i][0]) == (ary[i][2]-ary[i][1]) )  && ( (ary[i][2]-ary[i][1]) == (ary[i][3]-ary[i][2]) ) )
  {
 ary[i][4]=2*ary[i][3]-ary[i][2];
   }else{
 ary[i][4]=ary[i][3]*ary[i][3]/ary[i][2];
   }/*if else*/
  }/*for*/

  for(i=0;i<count;i++)
  {
 printf("%d %d %d %d %d/n",ary[i][0],ary[i][1],ary[i][2],ary[i][3],ary[i][4]);

  }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值