递归算法实例
2015-08-03 22:53
239 查看
要点
自己调用自己需要有个出口
步骤
如:求1+2+3+4+…+n1. 方法:public static int operation(int n) {},注意返回值和参数
2. 根据提议,当值为1时表示不再递归,那么此处定义为程序出口,即:
if (n == 1) { return 1; }
如果未到达出口,那么进行递归运算
else if (n > 1) { return operation(n - 1) + n; }
这里注意的地方有:“operation(n - 1) + n”相当于n值加上(n-1)的累加。同理,如果是求m!(m的阶乘),可以写成“m*(m-1)!”。
代码
public class Main {
public static void main(String[] args) {
@SuppressWarnings("resource")
int n = new Scanner(System.in).nextInt();
System.out.println("方法二:" + operation(n));
}
// 递归实现1加到n
private static int operation(int n) {
if (n == 1) { return 1; } else if (n > 1) {
return operation1(n - 1) + n;
}
return 0;
}
}
相关文章推荐
- tomcat配置外部应用
- 【JAVA】浅谈java枚举类
- 【背包总结-输出所有方案】
- 信号量、互斥体和自旋锁
- ABP之Javascript生成
- 网页制作之html基础学习4-格式与布局
- 周赛题解
- UITableView Cell
- 【背包总结I】
- CS281: Advanced Machine Learning 第三节 高斯模型
- STM8S精确延时+LED闪烁
- hdfs 客户端挂载,集群间复制
- ROS学习--(十三)编写简单的订阅器(subscriber),编译,测试
- centos 6实现ssh无密码登录的简便方法
- Android基础之Activity四种启动模式和task相关
- Java 打开文件夹
- Contiki例(三)使用etimer定时器激活被阻塞的任务
- UE4信息交互-蓝图类中的信息交互
- Android真机获取root权限,进入data目录
- 0-1背包