前言:以前,刚学C语言时候递归总是令我头疼!看汉诺塔的算法时,就用手指掐着算,如此也老是记得前边忘了后面。这个程序是一个群友问的,想了好一会才想出来。
源代码:
//使用递归计算数组中各元素的乘积
class ArrayMul...{
public int mul(int arr[],int n)...{ //递归实现方法
if(n<=1)...{
return arr[0];
}
else...{
return mul(arr,n-1)*arr[n-1];
}
}
public static void main(String[] args)...{ //主函数
int[] arr=...{3,1,2,5};
ArrayMul c1=new ArrayMul();
System.out.println("数组元素递归乘积是:"+c1.mul(arr,arr.length));
}
}
class ArrayMul...{
public int mul(int arr[],int n)...{ //递归实现方法
if(n<=1)...{
return arr[0];
}
else...{
return mul(arr,n-1)*arr[n-1];
}
}
public static void main(String[] args)...{ //主函数
int[] arr=...{3,1,2,5};
ArrayMul c1=new ArrayMul();
System.out.println("数组元素递归乘积是:"+c1.mul(arr,arr.length));
}
}
后记:递归思想的关键是理清多个元素中n与n-1的关系。