大牛们帮忙呀!!!!膜拜!!!!
Problem 1500 Monetary System
Accept: 307 Submit: 956
Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
In Byteland they have a very strange monetary system.
Each Bytelandian gold coin has an integer number written on it. A coin n can be exchanged in a bank into three coins: n/2, n/3 and n/4. But these numbers are all rounded down (the banks have to make a profit).
You can also sell Bytelandian coins for American dollars. The exchange rate is 1:1. But you can not buy Bytelandian coins.
You have one gold coin. What is the maximum amount of American dollars you can get for it?
Input
The input will contain several test cases (not more than 10). Each testcase is a single line with a number n, 0 <= n <= 1000000000. It is the number written on your coin.
Output
For each test case output a single line, containing the maximum amount of American dollars you can make.
Sample Input
12
2
Sample Output
13
2
用递归超时呀f(n)=max{f(n/2)+f(n/3)+f(n/4),n}
#include <iostream>
using namespace std;
long long f(n)
{
if(n<12)
return n;
else
{
if((f(n/2)+f(n/3)+f(n/4))>n)
return f(n/2)+f(n/3)+f(n/4);
else
return n;
}
}