快速提升代碼能力(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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章