笔试——牛羊吃草

最初有n份青草,牛牛和羊羊依次吃草,牛牛先开始吃,每次吃草的份数必须是4的x次幂,比如1,4,16,64等等。谁最后吃完谁胜。假定牛牛和羊羊都是按照最佳方法进行游戏,请输出胜利者的名字。

输入包括t+1行。

第一行包括一个整数t(1<=t<=100),表示情况数;

接下来t行,每一行一个n(1<=n<=10^9),表示青草份数

输出:对于每一个n,牛牛胜输出“niu”,羊羊胜输出“yang”。


样例:

3

1

2

3

输出:

niu

yang

niu


思想:

1:牛牛吃1,牛牛胜

2:牛牛吃1,羊羊吃1,羊胜

3:牛牛吃1,羊羊吃1,牛牛吃1,牛牛胜

4:牛牛吃4,牛牛胜

5:不管是牛牛吃1还是吃4,最后都是羊羊胜

6:1,1,4随机排序,都是牛羊牛的吃草循序,最后都是牛牛胜;也就是说,将1和4作为最后的吃草份数,在不计最后的1和4时,之前的份数最终是谁吃完的,就是谁胜,所以又进入了一个1和4的循环(也就是周期为5);也就是说,当5以后时,牛牛和羊羊都会以最优的方式来吃,在最后都会使自己吃完剩下的数为5,那么不管是谁,最后胜的都是自己,基本上是以5为周期来确定,这样问题就解决了。

有人可能会说那17(16+1)、65(64+1)等等,这个就不能确定了?但是要注意,题目是说最优吃草方式,比如说,当羊羊吃完还剩17时,牛牛如果吃16或1时,那么羊羊肯定是胜利者,所以牛牛不会选择吃16或1,所以他会选择吃4,这时就又会进入支持1和4的循环中了,也就是5份为一轮。65和129之后都是同样的道理,感兴趣的可以自己去算一下,但是要注意是最优吃草方式,所以让对方赢的可能是在遵循规则下逼不得已出现的。

代码:

import java.util.Scanner;

public class NiuYang {
	public static void main(String[] args) {
		Scanner in =new Scanner(System.in);
		int t = in.nextInt();
		for(int i=0;i<t;i++){
			int n = in.nextInt();
			int f = n % 5;
			switch(f){
			case 1:System.out.println("niu");break;
			case 2:System.out.println("yang");break;
			case 3:System.out.println("niu");break;
			case 4:System.out.println("niu");break;
			case 0:System.out.println("yang");break;
			default:break;
			}
		}
	}
}


你好!对于成都笔试中的PL/SQL准备,我可以为你提供一些指导和建议。PL/SQL是一种过程式编程语言,用于Oracle数据库的开发和管理。下面是一些可以帮助你准备PL/SQL笔试的建议: 1. 理解PL/SQL语法:掌握PL/SQL的基本语法结构,包括变量声明、条件语句、循环语句、游标和异常处理等。熟悉这些基础知识对于理解和编写PL/SQL代码至关重要。 2. 学习SQL语句:PL/SQL是建立在SQL语言基础上的,所以熟悉SQL语句也是非常重要的。掌握SQL查询、插入、更新和删除等基本操作,以及表连接、子查询和聚合函数等高级查询技巧。 3. 理解存储过程和函数:PL/SQL的核心概念是存储过程和函数。了解它们的定义、调用和使用方法,以及参数传递、返回值和异常处理等方面的知识。 4. 掌握PL/SQL的高级特性:学习PL/SQL的高级特性,如游标、触发器和包等。了解它们的用途和使用方法,以及与数据库交互和数据处理的相关技巧。 5. 多做练习题和项目实践:通过做一些练习题和实际项目,加深对PL/SQL的理解和应用能力。可以使用在线编程平台或者自己搭建一个本地的Oracle数据库环境。 6. 阅读相关文档和教程:阅读Oracle官方文档和一些相关的教程和书籍,可以帮助你更全面地了解和掌握PL/SQL的知识。 希望以上建议对你有所帮助!祝你在成都笔试中取得好成绩!如果你还有其他问题,可以继续向我提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值