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;
}
2013 到1 通过最小步数 到达1 2中运算 -1 或者除以2
时间: 2024-11-07 13:28:55