本文主要是介绍【洛谷千题详解】P1838 三子棋I,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目总览
题目描述
小 a 和 uim 喜欢互相切磋三子棋。三子棋大家都玩过是吗?就是在九宫格里面 OOXX(别想歪了),谁连成 3 个就赢了。
由于小 a 比较愚蠢,uim 总是让他先。
我们用 9 个数字表示棋盘位置:
123
456
789
所有的棋谱都是已经结束的棋局,要么一方获胜,要么平局。
今天,他们下了一下午的棋,小 a 为了提高技术,录下了很多棋谱。他想知道,一盘棋结束时,到底是谁赢。
输入格式
一行,一串数字,表示落子的地点。小 a 总是先下。
输出格式
一行,如果小 a 赢,输出 xiaoa wins.
。如果 uim 赢,输出 uim wins.
。如果平局,输出 drew.
。
思路分析
又是一题暴力判断+枚举。
AC代码
#include<bits/stdc++.h>
using namespace std;
int main()
{int chess[9]; int count = 0; int record; for (int i = 0; i < 9; i++){chess[i] = -100;}cin>>record;while (record != 0){count++;chess[record % 10 - 1] = count % 2;record /= 10;}//暴力if ((chess[0] == chess[1] && chess[1] == chess[2]) ||(chess[3] == chess[4] && chess[4] == chess[5]) ||(chess[6] == chess[7] && chess[7] == chess[8]) ||(chess[0] == chess[3] && chess[3] == chess[6]) ||(chess[1] == chess[4] && chess[4] == chess[7]) ||(chess[2] == chess[5] && chess[5] == chess[8]) ||(chess[0] == chess[4] && chess[4] == chess[8]) ||(chess[2] == chess[4] && chess[4] == chess[6])){if (count % 2 == 1){cout<<"xiaoa wins."<<endl;}else{cout<<"uim wins."<<endl;//一定要加英文标点啊!!!}}else{cout<<"drew."<<endl;}return 0;
}
这篇关于【洛谷千题详解】P1838 三子棋I的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!