问题3:求实数数组a[n]的最小值
分析:
(1)f(a,n)能求最小值 a:数组起始地址,n:数组长度
(2)n=1,f(a,n)=a[0];
(3)f(a,n-1)能求出,f(a,n)=min(f(a,n-1),a[n-1]);
问题4:用递归算法求整数数组a[n]的平均值。(a[0]~a[n-1])
分析:
(1)假设模型f(a,n)可求平均值 a:接收数组的起始地址,n:数组长度
(2)n=1, f(a,n)=a[0];
(3)f(a,n-1)能求出 f(a,n)= (f(a,n-1)*(n-1)+a[n-1])/n
问题5:用辗转相除法求整数m和n的最大公约数
分析:
另外一种解法。
辗转相除法:两个整数的最大公约数等价于其中较小的数和两个整数的余数的最大公约数,
接着往下继续等价,直到第二个数变为0,剩下的第一个数即为最大公约数。
(48,36) --》(36,48%36)--》(12,36%12) 剩下的12即为最大公约数
(1)gcd(m,n) //m接收较大的数,n接收较小的数,返回值为最大公约数
(2)n=0, gcd(m,n)=m;
(3)gcd(n,m%n)能求出, gcd(m,n)=gcd(n,m%n)
汉诺塔:
故事:人,狼,羊,白菜,利用一条船过河
规则:(1)船一次只能有人运一个东西过去 (2)人一旦离开,狼会吃羊,羊会吃白菜
问人怎么运才能把所有的东西全部安全到达对岸?
[1]
[2]
下一页