井字棋 C语言 键盘123456,程序设计入门—Java语言 第五周编程题 2井字棋(5分)...

2

井字棋(5分)

题目内容:

嗯,就是视频里说的那个井字棋。视频里说了它的基本思路,现在,需要你把它全部实现出来啦。

你的程序先要读入一个整数n,范围是[3,100],这表示井字棋棋盘的边长。比如n=3就表示是一个3x3的棋盘。然后,要读入n行,每行n个数字,每个数字是1或0,依次表示[0,0]到[n-1,n-1]位置上的棋子。1表示X,0表示O(大写字母O)。

你的程序要判断其中是否存在某一方获胜,获胜的条件是存在整行或整列或整条对角线或整条反对角线上是相同的棋子。如果存在,则输出代表获胜一方字母:X或O(大写字母X或O);如果没有任何一方获胜,则输出NIL(三个大写字母,中间是字母I(India的I)。

注意:所给的棋盘上的棋子分布可能出现同一个棋子有多处满足获胜的条件,但是不会出现两种棋子都获胜的情况。

输入格式:

一个代表棋盘大小的数字n,后面跟上nxn个0或1的数字。

输出格式:

三种输出之一:

X

O

NIL

均为大写字母。

输入样例:

4

1 0 0 1

0 1 0 0

0 0 1 0

1 0 0 1

输出样例:

X

时间限制:500ms内存限制:32000kb

import java.util.Scanner;

public class hello

{

public static void main(String[] args)

{

// TODO Auto-generated method stub

Scanner in=new Scanner(System.in);

int n=in.nextInt(); //范围是[3,100]

int[][] board= new int[n][n];

boolean gotResult=false;

int numOfX=0;

int numOf0=0;

//读入矩陈阵

for(int i=0;i

{

for(int j=0;j

{

board[i][j]=in.nextInt();

}

}

//判断行

for(int i=0;i

{

for(int j=0;j

{

if(board[i][j]==1)

{

numOfX++;

}

else

{

numOf0++;

}

}

if(numOfX==n||numOf0==n)

{

gotResult=true;

break;

}

else

{

numOfX=0;

numOf0=0;

}

}

//判断列

if(!gotResult)

{

for(int j=0;j

{

for(int i=0;i

{

if(board[i][j]==1)

{

numOfX++;

}

else

{

numOf0++;

}

}

if(numOfX==n||numOf0==n)

{

gotResult=true;

break;

}

else

{

numOfX=0;

numOf0=0;

}

}

}

//判断对角线

if(!gotResult)

{

for(int i=0;i

{

if(board[i][i]==1)

{

numOfX++;

}

else

{

numOf0++;

}

}

if(numOfX==n||numOf0==n)

{

gotResult=true;

}

else

{

numOfX=0;

numOf0=0;

}

}

//判断反对角线

if(!gotResult)

{

for(int i=0;i

{

if(board[i][n-i-1]==1)

{

numOfX++;

}

else

{

numOf0++;

}

}

if(numOfX==n||numOf0==n)

{

gotResult=true;

}

else

{

numOfX=0;

numOf0=0;

}

}

//输出结果

if(gotResult)

{

if(numOfX==n)

{

System.out.println("X");

}

else if(numOf0==n)

{

System.out.println("0");

}

}

else

{

System.out.println("NIL");

}

}

}

程序设计入门—Java语言 第六周编程题 1 单词长度(4分)

第六周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 1 单词长度(4分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以'.'结束.你要输出这行文本中每个单词的长度.这 ...

程序设计入门——C语言 第8周编程练习 1 单词长度(4分)

第8周编程练习 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...

程序设计入门——C语言 第7周编程练习 1多项式加法(5分)

第7周编程练习 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...

程序设计入门——C语言 第6周编程练习 2 完数(5分)

2 完数(5分) 题目内容: 一个正整数的因子是所有可以整除它的正整数.而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数.例如6=1+2+3(6的因子是1,2,3). 现在,你要写一个程序, ...

程序设计入门——C语言 第6周编程练习 1 分解质因数(5分)

1 分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. ...

程序设计入门——C语言 第5周编程练习 1高精度小数(10分)

1 高精度小数(10分) 题目内容: 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现方法. (0,1)之间的任何浮点数都可以表达为两个正整数的商,为了 ...

程序设计入门——C语言 第4周编程练习 2 念整数(5分)

题目内容: 你的程序要读入一个整数,范围是[-100000,100000].然后,用汉语拼音将这个整数的每一位输出出来. 如输入1234,则输出: yi er san si 注意,每个字的拼音之间有一 ...

程序设计入门——C语言 第4周编程练习 1 素数和(5分)

题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推. 现在,给定两个整数n和m,0

程序设计入门——C语言 第3周编程练习 2 数字特征值(5分)

2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作 ...

随机推荐

javascript中的链表结构—双向链表

1.概念 上一个文章里我们已经了解到链表结构,链表的特点是长度不固定,不用担心插入新元素的时候新增位置的问题.插入一个元素的时候,只要找到插入点就可以了,不需要整体移动整个结构. 这里我们了解一下双向 ...

【8-15】Markdown语法学习

学习Markdown语法 来源简书URL #,支持六级标题 列表 用-或*(指无序列表),有序列表直接1. 2. 3. 这样,中间有空格,可乱序(-+*都可,不能混合使用,混合使用为嵌套) 这是一个无 ...

java多线程-CyclicBarrier

介绍 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBa ...

MySQL密码忘记之解决方法

方法一: 通过修改配置文件来登录mysql,方法也不难. 操作步骤: 在安装目录下找到配置文件my.ini 2.在my.ini中找到 [mysqld]字段,在它底下加上skip-grant-table ...

c# session总结

C# 中对 Session 的“(string)”.“.ToString()”与“Convert.ToString”用法笔记 在实际操作当中,我们经常会遇到将 Session 的值转为 String ...

jquery不兼容input的change事件处理

因为客户使用系统一般都是用IE版本的浏览器,所以每次在chrome下调试之后都要在IE走一遍; 这次准备在选择开始时间或者结束时间之后在下方能及时给出对应的天数,但是在IE8下试了change时间根本 ...

C# JAVA成员访问修饰符比较

在面向对象的访问修饰符中常用的有public ,private ,protected C# 访问修饰符: private < protected internal < internal/p ...

安装adb之后出现 找不到设备的情况

adb 地址 https://pan.baidu.com/s/1sln2IZF     安装adb之后出现 找不到设备的情况   1.配置adb的环境变量 2.修改android_winusb.inf ...

Python内置函数&lpar;45&rpar;——object

英文文档: class objectReturn a new featureless object. object is a base for all classes. It has the meth ...

kubernetes 简介:kube-dns 和服务发现

服务发现 kubernetes 提供了 service 的概念可以通过 VIP 访问 pod 提供的服务,但是在使用的时候还有一个问题:怎么知道某个应用的 VIP?比如我们有两个应用,一个 app,一 ...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值