zoukankan      html  css  js  c++  java
  • 汉诺塔 HDU2064 (递归)注意类型!!longlong

    还没测试代码能不能通过。

    主要思想:

    首先把第一个柱子上N-1个移动到第三个上,然后最大的移动到第二个柱子上,然后N-1个再移动回到第一个,最大的移动到第三个,然后剩下N-1移动到第三个。

    也就是 2+hannuota(n-1)*3。

    N=1时是2次。剩下的递归求解。

     

     之前用的int错了!!!

    改成long long AC!

    #include<cstdio>
    #include<iostream>
    #include<string>
    #include<cstring>
    #include<cmath>
    #include<stdlib.h>
    #include<algorithm>
    #include<vector>
    #include<queue>
    #include<stack>
    using namespace std;
    long long hannuota(long long a)
    {
        if(a==1)
         return 2;
        else
        {
            return hannuota(a-1)*3+2;
         } 
    } 
    int main()
    {
        long long n;
        while(cin>>n)
        {
            cout<<hannuota(n)<<endl;
        }
        return 0;
    } 
  • 相关阅读:
    python之基础2
    python之文件2
    python之入门2
    python之入门
    python之多并发2
    python之面向对象2
    python之MySQL系列
    python之文件
    python之多并发
    Google身份验证器详解
  • 原文地址:https://www.cnblogs.com/h694879357/p/13469165.html
Copyright © 2011-2022 走看看