首页 > 代码库 > 2013 到1 通过最小步数 到达1 2中运算 -1 或者除以2

2013 到1 通过最小步数 到达1 2中运算 -1 或者除以2

d[n]=min(dp[n-1]+1,dp[n、2]); n为偶数
dp[n]=dp[n-1]+1;
答案为18
怎么通过计算求得答案?
#include<iostream>
using namespace std;
int d[2014];
int min(int x,int y)
{
    if(x>y) return y;
    else return x;

}


int main()
{
    int n;
    
    cin>>n;
    memset(d,0,sizeof(d));
    d[1]=0;
    d[2]=1;

    for(int i=3;i<=n;i++)
    {
        if(i%2==0) 
        {
            d[i]=min(d[i/2],d[i-1])+1;
        
        }
        else d[i]=d[i-1]+1;

        cout<<d[i]<<endl;
    
    
    
    }
    
    
    
    system("pause");
    

    return 0;

}