zoukankan      html  css  js  c++  java
  • zoj 2830 Champion of the Swordsmanship

    Champion of the Swordsmanship

    Time Limit: 2 Seconds      Memory Limit: 65536 KB

    In Zhejiang University, there is a famous BBS named Freecity. Usually we call it 88.

    Recently some students at the Humour board on 88 create a new game - Swordsmanship. Different from the common sword fights, this game can be held with three players playing together in a match. Only one player advances from the match while the other two are eliminated. Sometimes they also hold a two-player match if needed, but they always try to hold the tournament with as less matches as possible.

    Input

    The input contains several test cases. Each case is specified by one positive integer n (0 < n < 1000000000), indicating the number of players. Input is terminated by n=0.

    Output

    For each test case, output a single line with the least number of matches needed to decide the champion.

    Sample Input

    3
    4
    0

    Sample Output

    1
    2

    思路:抽象化。假如有n个人,最少需要比赛f(n)次,为了最少,肯定3个3个一组比赛,这需要n/3次,接下来除去淘汰的,还剩下n/3 + n % 3个人,这时需要比赛f(n/3 + n%3)次,那么f(n) = n / 3 + f(n /3 + n%3).如n == 1,则需要进行0次,n == 2需要进行1次。

    显然用递归就解决啦。

     1 #include <iostream>
     2 using namespace std;
     3 int func(int n){
     4     if(n == 1)
     5         return 0;
     6     if(n == 2)
     7         return 1;
     8     return n / 3 + func(n / 3 + n % 3);
     9 }
    10 
    11 int main(){
    12     int n;
    13     while(cin >> n){
    14         if(n == 0)
    15             break;
    16         cout << func(n) << endl;
    17     }
    18     return 0;
    19 }
  • 相关阅读:
    sql语句查询结果排序
    Spring MVC 注解
    Spring MVC 编程流程步骤
    菜鸟学自动化测试(一)—-selenium IDE
    list和set的区别
    Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
    是否可以从一个static方法内部发出对非static方法的调用?
    Shiro运行原理?
    shiro有哪些组件?
    简述Shiro的核心组件?
  • 原文地址:https://www.cnblogs.com/qinduanyinghua/p/6533106.html
Copyright © 2011-2022 走看看