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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值