P6352 [COCI2007-2008#3] CETIRI

我发现A那个感觉我的ac不多吧(70个),这期博客本人原本是不太想发出来的,但是我还是发出来了。

题目描述

你原本有 4 个数,它们从小到大排序后构成了等差数列。

但是现在丢失了一个数,并且其余的三个数的顺序也被打乱了。

请你找出第四个数。

输入格式

输入一行三个整数。保证这些数字在 -100\sim 100−100∼100 之间。

输出格式

输出一行一个数,为第四个数。

方案可能不是唯一的,但保证一定存在,本题使用SPJ。

输入输出样例

输入 #1

4 6 8

输出 #1

10

输入 #2

10 1 4

输出 #2

7

说明/提示

说明

题目译自 COCI2007-2008 CONTEST #3 T1 CETIRI

兄弟萌就离谱,就离了个大普。

我们正常人的思维怎么做这道题?有人说了,你直接试一下到底是倒序等差数列还是正这的等差数列,再直接找公差求不就好了吗?小伙子想法非常好。

我放一下源码,待会再讲

#include<iostream>
using namespace std;
int a[4];
int main(){
	int a,b,c;cin>>a>>b>>c;
	if(a>b) swap(a,b); 
	if(a>c) swap(a,c);
	if(b>c) swap(b,c);
	if(b-a==c-b){
		cout<<c+b-a;
	}else if(b-a>c-b){
		cout<<a+c-b;
	}else{
		cout<<b+b-a;
	}
	return 0;
}

为甚么我要这样写呢???

#include<iostream>
using namespace std;
int a[4];
int main(){
	for(int i=1;i<=4;i++){
		cin>>a[i];
	}
	int ans=a[3]-a[2];
	cout<<a[3]+ans;
	return 0;
}

这是我以前的代码,20分,就说明这只是其中的五分之一,所以我才会将第二段代码转换为第一段代码。很简单,求公差,很多if很多else if全都是这样的,特别是最后一个if和倒数两个else if,都能看懂,那开头我为什么要说我不想发出这一期博客呢,额主要啊是因为太简单了,没得讲,啊那为什么要发出来,那是因为我太皮了吗?不是。我帮你们复习一下else if或者教一下年纪比较小的同学们这一题的主要思路。

好了好了,我们下期再见,拜拜!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值