递归做法(JAVA面试题续)
来源:互联网 发布:socket.io 支持java吗 编辑:程序博客网 时间:2024/04/27 16:46
如果10=1+9; 10=1+2+7; …… 如果1+9 和 9+1 被认为是同一个 那么对于10000,可以有多少种加法?
上次已经给出一种方法解决,虽然心里明白用递归最合理,但觉得一用递归大脑就迷糊,为了尽快找出答案就用了另外的方法。现在又用递归完成了。
总结的使用递归注意点:
1 明确输入
2 明确输出
3 明确递归调用终止的条件
在本题中,输入为ordNum和recurNum,输出为count, 终止条件是对recurNum分解时(recurNum=ordNum+(recurNum-ordNum)), 第一个加数超过了第二个加数。
代码如下:
class Recursion{
//count record sum of depart methods
static int count=0;
public static void depart(int ordNum,int recurNum){
//ordNum is the recursion number as the same time also one of the addends
//recurNum is the number int this time of recursion which shuld be departed
int left=recurNum-ordNum;
//only when ordNum<=left, we can decide this time it's successful to depart recurNum
if(ordNum<=left){
count++;
System.out.print(" +"+ordNum);
int newOrdNum=ordNum+1;
int newRecurNum=left;
depart(newOrdNum,newRecurNum);
}
//recursin end
else{
System.out.println(" +"+recurNum);
System.out.println("count="+count);
}
}
public static void main(String args[]){
System.out.print("10000 =");
depart(1,10000);
}
}
上次已经给出一种方法解决,虽然心里明白用递归最合理,但觉得一用递归大脑就迷糊,为了尽快找出答案就用了另外的方法。现在又用递归完成了。
总结的使用递归注意点:
1 明确输入
2 明确输出
3 明确递归调用终止的条件
在本题中,输入为ordNum和recurNum,输出为count, 终止条件是对recurNum分解时(recurNum=ordNum+(recurNum-ordNum)), 第一个加数超过了第二个加数。
代码如下:
class Recursion{
//count record sum of depart methods
static int count=0;
public static void depart(int ordNum,int recurNum){
//ordNum is the recursion number as the same time also one of the addends
//recurNum is the number int this time of recursion which shuld be departed
int left=recurNum-ordNum;
//only when ordNum<=left, we can decide this time it's successful to depart recurNum
if(ordNum<=left){
count++;
System.out.print(" +"+ordNum);
int newOrdNum=ordNum+1;
int newRecurNum=left;
depart(newOrdNum,newRecurNum);
}
//recursin end
else{
System.out.println(" +"+recurNum);
System.out.println("count="+count);
}
}
public static void main(String args[]){
System.out.print("10000 =");
depart(1,10000);
}
}
- 递归做法(JAVA面试题续)
- java 递归 面试题
- java递归面试题
- 历届试题 李白打酒 (递归和全排列做法)
- java递归常见的面试题
- Java面试题续
- 面试题(十二)谈谈递归
- 面试题-递归
- 递归面试题汇总
- 递归面试题汇总
- 递归面试题
- 递归面试题
- 面试题(Java)
- 面试题之二叉树镜像(递归,非递归),深度
- 常见Java面试题 :迭代(iteration)和递归(recursion)
- 常见Java面试题 – 第四部分:迭代(iteration)和递归(recursion)
- 面试题-程序题-Java递归实现遍历文件目录(所有文件夹和子文件)
- 面试题—Java递归实现约瑟夫环
- oracle sql依然无可替代--《mastering oracle sql>
- c#学习笔记(数据库连接以及SqlDataReader、SqlCommand的使用)
- 由VOIP的应用想起的UDP的一些技术问题
- 读取文本文件的时候,乱码的解决办法...
- 销售人员必看~~三个经典电话销售案例
- 递归做法(JAVA面试题续)
- java穿越代理服务器
- ajax自动加载blogjava和博客园的rss
- 独立与客观—CMM中的软件质量保证实施准则
- Dream will come true right here
- 嵌入式系统BootLoader技术内幕
- int 和 integer
- [学车日记]^_^——交规考试96分!!!!!!
- ClearCase迁移中的一些经验