2021/3/22

1、**

剪刀石头布

**
今天小红和小明在玩剪刀石头布

但是小明喜欢小红,而喜欢的最高境界就是舔,于是他提出了闭眼玩的方法,只要不是平局就让小红赢

这样小明只需要知道他们是否平局就好了
输入格式:
题目输入包含两个字符串分别代表小红和小明出的什么,即“stone”,“scissors”,“cloth”代表石头剪刀布
输出格式
如果平局就输出“NO!”小红赢就输出“YES!”
输入样例:

stone stone

输出样例

NO!

源代码:

# include<stdio.h>
#include<string.h>
int main()
{
	char a[10],b[10];
	scanf("%s %s",a,b);
	if(strcmp(a,b))
	printf("YES!");
	else
	printf("NO!");
    return 0;
}

2、一元二次方程(有实根)
输入一元二次方程的三个系数a、b、c的值,输出其两个根(假设方程有实根)。要求大根先输出,小根后输出。
输入格式:
三个数。
输出格式:
按样例格式输出。
输入样例:

1 4 3

输出样例:

X1=-1.000
X2=-3.000

输入样例:

1 2 1

输出样例:

X1=-1.000
X2=-1.000

源代码:

# include<stdio.h>
# include<math.h>
int main()
{	double a,b,c;
    double disc,x1,x2,p,q;
	scanf("%lf %lf %lf",&a,&b,&c);
	disc=b*b-4*a*c;
	p=-b/(2.0*a);
	q=sqrt(disc)/(2.0*a);
	x1=p+q;
	x2=p-q;
	printf("X1=%.3lf\n",x1);
	printf("X2=%.3lf\n",x2); 
	return 0;
 } 

3、**

雀魂majsoul (20 分)

**

大家都知道雀魂majsoul是一个麻将游戏

ln的麻将功底相当高(魂天dalao),今天有个小学妹问他麻将怎么打才能胡大牌

但是因为ln还要上国服第一,懒的回她

所以他把问题抛给了你

很简单,你只要判断题目给出的牌型能不能胡特定的牌型即可

1.九莲宝灯只有一种类型的牌(条、饼、万)其中19各三张其他1张再加任何一张当前种类的牌即可

2.七对子(七个不同的对子)

3.国士无双需要条、饼(筒)、万的幺九牌(1和9共计6张)+所有的风牌(东西南北白发中7张)+前面的牌任意一张

当然,有时候出千不可避免,所以你需要判断这副牌是否合法(每种牌只有四张)

条 筒 万每种牌从1-9及w1 w2 w3 - w7 w8 w9每张牌有四张相同的,风牌及东西南北白发中,也是有4张相同的。共计136张牌。
输入格式:
第一行包含一个n,接着n行每行一个字符串。

如果当前字符为t,b,w 那么他们分别代表着条,饼(筒),万。他们后面会紧接着一个数字,例如,t2代表2筒,w3代表三万。

如果当前字符为zxcvjkl其中一个,那么他们直接代表风牌中的一个。
输出格式:
对于每个字符串判断牌型:

1七对子:“qidui”

2九莲宝灯:“jiulianbaodeng!”

3国士无双:“32000!”

4如果都不符合,则输出“zhahu”
输入样例:

1
zxcvjklt1t9w1w9b1b9l

输出样例:

32000!

源代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 12;
int n;
string str;
string ch = "zxcvjkl";
int t[N] , b[N] , w[N]; 
int c[N];  
bool init() {
    int cnt = 0;
    for(int i = 0 ; i < str.size() ; i++) {
        if(ch.find(str[i]) != -1) {
            if(++c[ch.find(str[i]) + 1] > 4)
                return false;
        } else {
            if(i + 1 >= str.size())
                return false;
            if(str[i] == 't') {
                if(++t[str[i + 1] - '0'] > 4)
                    return false;
            } else if(str[i] == 'b') {
                if(++b[str[i + 1] - '0'] > 4)
                    return false;
            } else if(str[i] == 'w') {
                if(++w[str[i + 1] - '0'] > 4)
                    return false;
            }
            else
                return false;
            i++;
        }
        cnt++;	
    }
    return cnt == 14;
}
int cntDui(int x[]) {
    int cnt = 0;
    for(int i = 1 ; i < 10 ; i++)
        cnt += x[i] == 2; 
    return cnt; 
}
bool qidui() {
     if(cntDui(t) + cntDui(b) + cntDui(w) + cntDui(c) == 7) {
        cout<<"qidui"<<endl;
        return true;
    }
    return false; 	
}
int judge(int x[]) {
    int cnt = 0;
    for(int i = 1 ; i < 10 ; i++) {
        cnt += x[i];
        if(x[i] == 0)
            return false;
    }
    return cnt == 14; 
}
bool jiulian() {
    if((judge(t) && t[1] >= 3 && t[9] >= 3) 
    || (judge(w) && w[1] >= 3 && w[9] >= 3)
    || (judge(b) && b[1] >= 3 && b[9] >= 3)) {
        cout<<"jiulianbaodeng!"<<endl;
        return true;
    }
    return false;
}
bool judgeCh() {
    for(int i = 1 ; i <= ch.size() ; i++) {
        if(c[i] == 0)
            return false;
    }
    return true;
}
bool isEmity(int x[]) {
    for(int i = 2 ; i < 9 ; i++)
        if(x[i])
            return false;
    return true;
}
bool guoshi() {
    if(t[1] && t[9] && w[1] && w[9] && b[1] && b[9] && judgeCh() 
        && isEmity(t) && isEmity(w) && isEmity(b)) {
        cout<<"32000!"<<endl;
        return true;
    }
    return false;
}

int main() {
    cin>>n;	
    while(n--) {
        cin>>str;
        if(!init() || (!qidui() && !jiulian() && !guoshi()))
            cout<<"zhahu"<<endl;
    }
    return 0;
}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值