切披萨:把一张披萨饼切n刀,最多能得到多少块饼?用C语言实现函数,输入参数为n,返回结果
int qie(int n)
{
if (n == 0)
{
return 1;
}
else
{
return qie(n - 1) + n;
}
}
河内塔问题:移动n层的塔,总的移动次数是多少?
int hannuo(int n)
{
return pow(2, n) - 1;
}
或者
int hannuo2(int n)
{
if (n == 1)
{
return 1;
}
else
{
return hannuo2(n - 1) * 2 + 1;
}
}
void HanoiTower(int n, char source, char temp, char target)
{
if (n < 1)
return;
if (1 == n)
{
printf("%c->%c,␣", source, target);
return;
}
HanoiTower(n - 1, source, target, temp);
printf("%c->%c,␣", source, target);
HanoiTower(n - 1, temp, source, target);
return;
}