p2072_递归.cpp

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· C++ 代码 · 共 27 行

CPP
27 行
字号
#include <stdio.h>
#include <iostream>

using namespace std;

long long f ( long long , bool );

long long  A , B , NA;

main ()
{
     while ( cin >> A >> B ) {
           for ( NA = A; B; B -- , A = NA ) {
               NA = f ( A , false );
               if ( NA == 1 || A == NA ) break;
           }
           cout << NA << endl;
     }
}

long long f ( long long K , bool odd )
{
     if ( K <= 1 ) return K;
     if ( odd ) return f ( K / 2 , ( K & 1LL ) == 0LL ) * 2;
     else return f ( ( K + 1 ) / 2 , ( K & 1LL ) == 1LL ) * 2 - 1;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?