c_cpp 达到1的最小步骤

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 达到1的最小步骤相关的知识,希望对你有一定的参考价值。

#include <iostream>
using namespace std;

int func (int dp[], int n) {
    if (n==1)
        return 0;
    if (dp[n]!= -1)
        return dp[n];

    int r= func(dp, n-1);
    if (n%2==0)
        r= min(r, func(dp, n/2));
    if (n%3==0)
        r= min(r,func(dp, n/3));
    dp[n]=1+r;

    return 1+r;
}

int main () {
    int n;
    cin>> n;

    int dp[n+1];
    for (int i=0; i<=n;i++)
        dp[i]= -1;
    dp[1]=0;
    cout<< "Minimum steps to reach 1: " << func (dp, n);

}

以上是关于c_cpp 达到1的最小步骤的主要内容,如果未能解决你的问题,请参考以下文章