1、炮弹一样的球状物体,能够堆积成一个金字塔,在顶端有一个炮弹,它坐落在一个4个炮弹组成的层面上,而这4个炮弹又坐落在一个9个炮弹组成的层面上,以此类推。写一个递归函数CannonBall,这个函数把金字塔的高度作为参数,并且返回它所包括的炮弹数量。函数必须按照递归方式实现,不可以使用迭代结构,例如while或for。
int CannonBall(int h)
{if(h == 1) return 1;elsereturn CannonBall(h-1) + pow(h,2);
}
int main(void)
{printf("%d\n",CannonBall(4));return 0;
}
2、使用C编写一个指数函数,实现n^k
int RaiseToPower(int n, int k)
{ if(k == 0) return 1; else return n * RaiseToPower(n,k -1);
} int main()
{ printf("%d\n",RaiseToPower(3,4)); return 0;
}
3、使用欧几里得公式写一个递归函数gcd(m,n),用来计算m与n的最大公约数.
int gcd(int m, int n)
{ if(m % n ==0) return n; else return gcd(n,m % n);
} int main()
{ printf("%d\n",gcd(18,4)); return 0;
}
转载于:https://blog.51cto.com/wuyudong/1304651