码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 847 - A Multiplication Game(博弈)

时间:2014-07-18 21:27:15      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   os   io   代码   

UVA 847 - A Multiplication Game

题目链接

题意:一个数一开始是1,每次轮流乘2-9,谁先大于n谁就赢,问谁胜

思路:博弈,找出必胜态,2-9为stan,10-18为ollie,19-162为stan...发现都是乘2乘9交替

代码:

#include <stdio.h>
#include <string.h>
#include <math.h>

long long n;

bool judge(long long n) {
	long long a = 1, b = 1;
	int flag = 1;
	while (1) {
		if (flag) {
			a = b + 1;
			b *= 9;
			if (a <= n && n <= b) return true;
  			flag = 0;
    	}
  		else {
  			a = b + 1;
  			b *= 2;
  			if (a <= n && n <= b) return false;
  			flag = 1;
  		}
 	}
}

int main() {
	while (~scanf("%lld", &n)) {
		printf("%s wins.\n", judge(n)?"Stan":"Ollie");
 	}
	return 0;
}


UVA 847 - A Multiplication Game(博弈),布布扣,bubuko.com

UVA 847 - A Multiplication Game(博弈)

标签:style   http   color   os   io   代码   

原文地址:http://blog.csdn.net/accelerator_/article/details/37884347

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!