java基础:11.1 递归
发布日期:2022-04-04 06:36:32
浏览次数:18
分类:博客文章
本文共 2263 字,大约阅读时间需要 7 分钟。
之前学C语言时对递归有了较多了解,这部分主要把题目的代码都自己实现一遍。知识点不再记录了
import java.io.File;import java.util.Scanner;public class ComputeFactorial { public static void main(String[] args) { // TODO Auto-generated method stub String directory = "f:\\java"; System.out.println(getSize(new File(directory)) + " bytes") ; double [] list = { 2.5,1,5,8,3.1,5.5,6.8}; recursionSort(list); for (double e:list) System.out.println(e); System.out.println("key = 3.1 , after BinarySearch fine the index = " + recursiveBinarySearch(list,3.1) ); String s = "II I"; System.out.println(" \""+s +" \" is isPalindrome = " + isPalindrome(s)); int fibonacci_index = 10; System.out.println(" while index = " + fibonacci_index + " ,the fibonacci data = " + fibonacci(fibonacci_index)); int factorialN = 5; System.out.println(" while N = " + factorialN + " ,the factorial result = " + factorial(factorialN)); } private static long getSize(File file) { long size = 0; if (file.isDirectory()) { File[] files = file.listFiles(); for (int i = 0; files != null && i < files.length; i++) size += getSize(files[i]); } else size += file.length(); return size; } public static int recursiveBinarySearch(double []list, double key) { int low = 0; int high = list.length-1; return recursiveBinarySearch(list,low,high,key); } private static int recursiveBinarySearch(double []list, int low, int high, double key) { if (low > high) return -low-1; int mid = (low+high)/2; if(key < list[mid]) return recursiveBinarySearch(list,low,mid-1,key); else if(key > list[mid]) return recursiveBinarySearch(list,mid+1,high,key); else return mid ; } /* -------- sort ------- */ public static void recursionSort(double []list) { recursionSort(list,0,list.length-1); } private static void recursionSort(double []list,int low,int high) { if(low= high) return true; else if(s.charAt(low) != s.charAt(high)) return false; else return isPalindrome(s,low+1,high-1); } /* --- fibonacci --- */ public static int fibonacci(int index) { if(index==0) return 0; else if(index==1) return 1; else return fibonacci(index-1)+fibonacci(index-2); } /* --- factorial --- */ public static long factorial(int n) { if(n==0) return 1; else return n*factorial(n-1); }}
转载地址:https://www.cnblogs.com/l20902/p/10610899.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月17日 11时11分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
木兰编程语言入门教程之三——函数和类型
2019-04-26
基于「木兰」逆向工程用 pyinstaller 生成可执行文件
2019-04-26
从微盟事件看商业数据公开化的必然趋势
2019-04-26
为新语言编写Visual Studio Code语法高亮插件
2019-04-26
手机编程环境初尝试-用AIDE开发Android应用
2019-04-26
Java关键字的汉化用词探讨
2019-04-26
程序员面试时用中文命名写白板代码的好处
2019-04-26
1992年日本对母语编程的可读性比较实验
2019-04-26
[转] 用python编写控制网络设备的自动化脚本3:启动
2019-04-26
扩展Python控制台实现中文反馈信息
2019-04-26
扩展Python控制台实现中文反馈信息之二-正则替换
2019-04-26
在PyPI测试平台发布Python包
2019-04-26
中文代码示例之Electron桌面应用开发初体验
2019-04-26
中文代码示例之NW.js桌面应用开发初体验
2019-04-26
为《 两周自制脚本语言 》添加中文测试代码
2021-06-29
将《 两周自制脚本语言 》测试中使用的接口中文化
2021-06-29
5分钟入门LingaScript-尝鲜中文版TypeScript
2021-06-29
重拾《 两周自制脚本语言 》- 支持中文标识符
2021-06-29
Java实现文本编辑时基于拼音输入的补全原型
2021-06-29