C - Strange Bank
Time limit : 2sec / Memory limit : 256MB
Score : 300 points
Problem Statement
To make it difficult to withdraw money, a certain bank allows its customers to withdraw only one of the following amounts in one operation:
1 yen (the currency of Japan)
6 yen, 62(=36) yen, 63(=216) yen, ...
9 yen, 92(=81) yen, 93(=729) yen, ...
At least how many operations are required to withdraw exactly N yen in total?
It is not allowed to re-deposit the money you withdrew.
Constraints
- 1≤N≤100000
- N is an integer.
Input
Input is given from Standard Input in the following format:
N
Output
If at least x operations are required to withdraw exactly N yen in total, print x.
Sample Input 1
127
Sample Output 1
4
By withdrawing 1 yen, 9 yen, 36(=62) yen and 81(=92) yen, we can withdraw 127 yen in four operations.
Sample Input 2
3
Sample Output 2
3
By withdrawing 1 yen three times, we can withdraw 3 yen in three operations.
Sample Input 3
44852
Sample Output 3
16
题解看代码也能看懂
# include < cstdio >
int N;
int main()
{
scanf("% d ", &N);
int res = N;
for (int i = 0; i <= N; i++)
{
int cc = 0;
int t = i;
while (t > 0) cc += t % 6, t /= 6;
t = N - i;
while (t > 0) cc += t % 9, t /= 9;
if (res > cc) res = cc;
}
printf("% d \ n ", res);
}