PS:
1.动态规划dp
2.数组的初始化, dp是一个数组,将它的所有元素为0x7f
memset(dp/*数组名*/,0x7f/*要赋予的值*/ ,sizeof(dp)/*数组元素个数*/);
3.dp[0] = 0; //边界问题
4. dp[k] > dp[k-t]+1
dp[k] = dp[k-t]+1; //动态数组求值
#include //动态规划dp
#include
int dp[20005];
int main(void)
{
int m, n;
int t, p;
int i, j, k;
memset(dp, 0x7f, sizeof(dp)); //数组的初始化, dp是一个数组,将它的所有元素为0x7f
memset(dp/*数组名*/,0x7f/*要赋予的值*/ ,sizeof(dp)/*数组元素个数*/);
dp[0] = 0; //边界问题
scanf("%d%d", &m, &n);
for (i=0; i=t; --k)
{
if (dp[k] > dp[k-t]+1)
{
dp[k] = dp[k-t]+1; //动态数组求值
}
}
}
}
if (dp[m]==0x7f7f7f7f)
{
printf("><\n");
}
else
{
printf("%d\n", dp[m]);
}
return 0;
}