您的位置:首页 > 其它

递归和归纳

2016-06-25 16:17 267 查看
public class recusive {
public static int f(int x){
if(x==0)
return 0;
else
return 2*f(x-1)+x*x;
}//经典递归方法

public static int bad(int n){
if(n==0)
return 0;
else
return bad(n/3+1)+n-1;
}//无中止的递归方法,对于递归程序不存在像“特殊情形”这样的情况
/*
* 所以总结出两个基本准则
* 1.基准情形:必须要有某些基准情形,不许要递归求解就可以得出结果
* 2.递归求解:对于那些需要递归求解的情形,递归总能朝着一个基准情形推进
* 3.设计法则:假设所有的递归调用都能够运行
* 4.合成效益法则:在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工作
* */
//输出整数列子
public static void printOut(int n){
if(n>=10)
printOut(n/10);
System.out.print(n%10);
}
//我们并没有努力高效的去做这件事情,我们本可以避免使用mod历程(它是非常耗时的),因为
//n%10=n-(n/10)*10;

public static void main(String[] args){
recusive.printOut(123);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  递归