zoukankan      html  css  js  c++  java
  • UVA 847

    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.
    ", judge(n)?

    "Stan":"Ollie"); } return 0; }



    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    World Cup
    Eva's Problem
    Number-guessing Game
    WisKey的眼神
    Vowel Counting
    The 3n + 1 problem
    超级楼梯
    母牛的故事
    素数回文
    画8
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4776324.html
Copyright © 2011-2022 走看看