娱乐向"Ghosts Age"

Ghost的寿命在斐波那契数列中则能力递减,反之能力+1

这个随机答案直接把斐波那契数列导入了可还行hhhhhhh

# ghost-age_20180405.original.temp.NEWEST.py

# vim: ts=4 sw=4 expandtab

# Copyright (C) 2018 CheckiO, Inc. All rights reserved.

##!/usr/bin/env python

#

#"""

#fib.py - Print out fibonacci integer sequence up to N.

#

#Usage: ./fib.py N

#"""

#__license__ = "GPL"

#__version__ = "0.0.1"

#__status__ = "Prototype"

#__copyright__ = "(C) 2003 Sakata Industry"

import scipy#,sys

from math import *

import pprint

import time

#import string

FIBOS = []

def isfib(n):

    if n in FIBOS:

        return True

    if not len(FIBOS):

        for n in range(3000):

            #FIBOS.append(fibonati_original(n)

            #FIBOS.append(fibonati(n))

            FIBOS.append(FibonacciMASTER(n))

def isfib2(target):

    # Fixed by Kate (2018/3/3)

    if isfib(target) is None: return False

    return True

'''aВычисляет число фибоначчи при заданном

индексе'''

def fibonati_original(num):

    if num <= 1 or num == 5: return num

    if 1 < num and 4 >= num: return num - 1

    if num == 6: return 8

    if num == 7: return 13

    if num == 8: return 21

    if num == 9: return 34

    if num == 10: return 55

    if num == 11: return 89

    if num == 12: return 144

    if num == 13: return 233

    if num == 14: return 377

    if num == 15: return 610

    if num == 16: return 987

    if num == 17: return 1597

    if num == 18: return 2584

    if num == 19: return 4181

    if num == 20: return float('inf')

def fibonati(int):

  # https://docs.python.org/3/tutorial/modules.html

  if int<2:

    return int

  else:

    return fibonati(int-1)+fibonati(int-2)

def fibonacci_revised(len):

    '''

    フィボナッチ数列を計算する

    :param len: 数列の長さ (取得したい)

    :retval: 数字

    '''

    リスト = [0, 1]

    len += 1

    while リスト.__len__() < len:

        リスト.append(リスト[-2]+リスト[-1])

    return リスト[-1]

# CALL THIS MASTER FUNCTION TO GET CORRECT RESULT FAST

def FibonacciMASTER(number):

    if number < 20:

        return fibonati(number)

    elif number < 1000:

        return jessie_ver_fib(number)

    else:

        fibonacci_revised(number)

jessie_ver_fib = lambda n: round((((1+sqrt(5))/2)**n-((1-sqrt(5))/2)**n)/sqrt(5))

#if __name__ == "__main__":

#    goto = int(sys.argv[1])

#

#    for val in range(goto + 1):

#        if isfib(val):

#            print(val, end=' ')

### MAIN FUNCTION !!!!! ###

# 2018.1.1 / Ticket #101 fixed (A HAPPY NEW YEAR!)

# 2017/10/9, Improved performance by Peter

# 2017.03.03 / Takeshi / Fixed bug.

# 2017.01.12 (second), Kate, minor update

# 2017.01.12, john, first version

def checkio(opacity_sensor_value):

    age = 0

    opacity = 10000

    # XXX: i don't know why but it seems required?

    isfib(42)

    while opacity != opacity_sensor_value:

        if isfib2(age):

            opacity -= age

        else:

            opacity += 1

        age += 1

    return max(0, age - 1)

#print(checkio(10000))

#print(checkio(9999))

#print(checkio(9997))

#print(checkio(9994))

#print(checkio(9995))

#print(checkio(9990))

#print(checkio(9000)) # NOT WORK ?

print(checkio(1000))

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.暗闇より夜魔来たる-1あなたはきっとこんな私をお許しにはならないでしょう…ですが、私はあなたを守る以外の何かを...
    波沙诺瓦阅读 1,947评论 1 2
  • 8月22日-----字符串相关 2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消...
    future_d180阅读 1,001评论 0 1
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,937评论 0 8
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,054评论 0 2
  • はくし(博士)じっそう(実装)= implementation /ˌɪmplɪmen'teɪʃn/ = 实现 11...
    历奇阅读 400评论 0 0