zoukankan      html  css  js  c++  java
  • IEEEXtreme 9.0

    博客中的文章均为 meelo 原创,请务必以链接形式注明 本文地址

    Xtreme 9.0 - Digit Fun!

    题目来源:第9届IEEE极限编程大赛第1题

    Recurrence relations are an important tool for the computer scientist. Many algorithms, particularly those that use divide and conquer, have time complexities best modeled by recurrence relations. A recurrence relation allows us to recursively define a sequence of values by defining the nth value in terms of certain of its predecessors.

    Many natural functions, such as factorials and the Fibonacci sequence, can easily be expressed as recurrences. The function of interest for this problem is described below.

    Let |An| denote the number of digits in the decimal representation of An. Given any number A0, we define a sequence using the following recurrence:

    Ai = |Ai-1| for i > 0

    The goal of this problem is to determine the smallest positive i such that Ai = Ai-1.

    Input Format

    Input consists of multiple lines, each terminated by an end-of-line character. Each line (except the last) contains a value for A0, where each value is non-negative and no more than a million digits. The last line of input contains the word END.

    Output Format

    For each value of A0 given in the input, the program should output one line containing the smallest positive i such that Ai = Ai-1.

    Sample Input

    9999
    0
    1
    9999999999
    END
    

    Sample Output

    3
    2
    1
    4
    

    Explanation

    The first input value is A0 = 9999, resulting in A1 = |9999| = 4. Because 4 does not equal 9999, we find A2 = |A1| = |4| = 1. Since 1 is not equal to 4, we find A3 = |A2| = |1| = 1. A3 is equal to A2, making 3 the smallest positive i such thatAi = Ai-1.

    The second input value is A0 = 0, resulting in A1 = |0| = 1. Because 0 does not equal 1, we find A2 = |A1| = |1| = 1. A2is equal to A1, making 2 the smallest positive i such that Ai = Ai-1.

    The third input value is A0 = 1, resulting in A1 = |1| = 1. A1 is equal to A0, making 1 the smallest positive i such thatAi = Ai-1.

    The last input value is A0 = 9999999999, resulting in A1 = |9999999999| = 10. Because 10 does not equal 9999999999, we find A2 = |A1| = |10| = 2. Since 2 is not equal to 10, we find A3 = |A2| = |2| = 1. Since 1 is not equal to 2, we find A4 = |A3| = |1| = 1. A4 is equal to A3, making 4 the smallest positive i such that Ai = Ai-1.

    Editorial

    The following editorial explains an approach for solving this problem.

    Given the potential size of the numbers, it is much easier to solve this problem if you attempt to store the values, not in integer variables, but rather as strings.

     
    程序 
    Python3
    while True:
        s = input()
        i = 1
        if s == 'END':
            break
        while s != str(len(s)):
            i += 1
            s = str(len(s))
        print(i)
  • 相关阅读:
    jQuery Validate 验证成功时的提示信息
    MySQL定时任务实现方法
    tp5获取器的用法。
    使用layui异步请求上传图片在tp5.1环境下出现“请对上传接口返回json”的错误的解决方法
    微信小程序底部菜单栏的使用方法
    接口测试中的接口到底是什么?
    【web自动化测试】requests-html 这个解析库,能让你更轻松的获取网页内容
    一个软件测试小白的进阶之路
    Python进阶:@property 动态属性
    百度网盘限速怎么办?
  • 原文地址:https://www.cnblogs.com/meelo/p/5931395.html
Copyright © 2011-2022 走看看