快速提升代码能力(12) unique(a,a+n)

从零起步看算法(第十二天 4.17)

题外话:昨晚想了一些其他的事,有些生活的残酷你注定要去旁观,而无法避免。伤害,或许是一种宿命,你能做的就是让悲痛成为财富而已。

//q13  HZF 爱斗牛

思路很简单的一道题,但注意的知识点还是有的。

1.对 unique(a,a+n)的深入认识,只是隐藏了原来的数组的相同的值,改变了顺序而已

https://blog.csdn.net/tomorrowtodie/article/details/51907471

2.对于情况少的判断,枚举法很有效。

3.对题意细节的理解,对牌类游戏题型的小积累,小主意。

贴代码:

 //q13  HZF 爱斗牛
#include<iostream>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;
bool is_three(int a[]){
	if((a[0]+a[1]+a[2])%10==0)return true;
	if((a[0]+a[1]+a[3])%10==0)return true;
	if((a[0]+a[1]+a[4])%10==0)return true;
	if((a[0]+a[2]+a[3])%10==0)return true;
	if((a[0]+a[2]+a[4])%10==0)return true;
	if((a[0]+a[3]+a[4])%10==0)return true;
	if((a[1]+a[2]+a[3])%10==0)return true;
	if((a[1]+a[2]+a[4])%10==0)return true;
    if((a[1]+a[3]+a[4])%10==0)return true;
	if((a[2]+a[3]+a[4])%10==0)return true;
	else return false;
}
int main(){
	int a[5]={0};
	int sum=0;
	for(int i=0;i<5;i++){
		cin>>a[i];
		if(a[i]==11)a[i]=10;
		if(a[i]==12)a[i]=10;
		if(a[i]==13)a[i]=10;
		sum+=a[i];
	}
	sort(a,a+5);
	int k=unique(a,a+5)-a;
	
	if(k<=2&&a[1]==a[2]&&a[2]==a[3]){
		cout<<"quadra bomb orz"<<endl;
		return 0; 
	}
	if(k<=2&&a[0]==a[2]&&a[2]==a[3]){
		cout<<"quadra bomb orz"<<endl;
		return 0; 
	}
	if(a[4]<5&&sum<=10){
		cout<<"penta calf"<<endl;
		return 0;
	}
	if(is_three(a)&&sum%10==0){
		cout<<"you can you up"<<endl;
		return 0;
	}
	if(is_three(a)){
		cout<<"too young too simple:calf "<<sum%10<<endl;
		return 0;
	}
	else
	cout<<"gg"<<endl;
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值