Atcoder Beginner Contest 099 C_strange bank

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

  • 1N100000
  • 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

Copy
127

Sample Output 1

Copy
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

Copy
3

Sample Output 2

Copy
3

By withdrawing 1 yen three times, we can withdraw 3 yen in three operations.


Sample Input 3

Copy
44852

Sample Output 3

Copy
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);
}

猜你喜欢

转载自blog.csdn.net/usernamezzz/article/details/80671970