easy math problem


easy math problem
Time Limit: 1000 ms Memory Limit: 65536 KiB
Submit Statistic
Problem Description
1つの数nについて、次の2つの操作があります.
1つは1を減らすことで、aが必要です.
しかし、nがkで除去されれば、bを費やしてnをkで除算することもできる.
すみません、この数を1にするには最低いくらかかりますか?
Input
1行目の整数n(n<=1 e 5)
2行目の3つの正の整数は、それぞれa,b,k(0Output
出力整数は最小コストを表します.
Sample Input
10
1 2 2

Sample Output
6

Hint
Source
歩く二叉木
構想:この問題の構想は非常に簡単で、nを1にするのは2つのステップにほかならない.そしてその場合を判断して、そのステップを使います.
コードは次のとおりです.
#include
#include

int main()
{
    int n ;
    int a ,b , k ;
    int sum = 0 ;

    scanf("%d",&n) ;
    scanf("%d %d %d",&a,&b,&k) ;
    while(n!=1)
    {
        if(n%k==0&&(n-n/k)*a>b)
        {
            sum+=b ;
            n = n/k ;
        }
        else
        {
            sum+=a ;
            n-- ;
        }
    }
    printf("%d
",sum) ; return 0 ; }