範例程式碼 uva12627

//uva12627
#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

long long red_ballon(int k, int r) {
    if (r == 0)
        return 0;
    if (k == 0)
        return 1;

    if (r <= pow(2, k - 1))
        return 2 * red_ballon(k - 1, r);
    else
        return 2 * pow(3, k - 1) + red_ballon(k - 1, r - pow(2, k - 1));
}

int main() {
    int case_num = 0;
    int k = 0, row_a = 0, row_b = 0;

    cin >> case_num;
    for (int i = 0; i < case_num; i++) {
        cin >> k >> row_a >> row_b;

        cout << "Case " << i + 1 << ": "
             << red_ballon(k, row_b) - red_ballon(k, row_a - 1) << endl;
    }
    return 0;
}