递归,排序等算法编程题
来源:互联网 发布:侠客风云传低配优化 编辑:程序博客网 时间:2024/06/15 07:21
7、递归算法题1
一个整数,大于0,不用循环和本地变量,按照n,2n,4n,8n的顺序递增,当值大于5000时,把值按照指定顺序输出来。
例:n=1237
则输出为:
1237,
2474,
4948,
9896,
9896,
4948,
2474,
1237,
提示:写程序时,先致谢按递增方式的代码,写好递增的以后,再增加考虑递减部分。
public static void doubleNum(int n)
{
System.out.println(n);
if(n<=5000)
doubleNum(n*2);
System.out.println(n);
}
Gaibaota(N) = Gaibaota(N-1) + n
7、递归算法题2
第1个人10,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?
package cn.itcast; importjava.util.Date; public class A1 { public static void main(String [] args) { System.out.println(computeAge(8)); } public static int computeAge(int n) { if(n==1) return 10; return computeAge(n-1)+ 2; }} public static void toBinary(int n,StringBuffer result) { if(n/2 != 0) toBinary(n/2,result); result.append(n%2); }
94、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。
本人只研究过冒泡排序、选择排序和快速排序,下面是快速排序的代码:
public class QuickSort {/*** 快速排序* @param strDate* @param left* @param right*/public void quickSort(String[] strDate,int left,int right){String middle,tempDate;int i,j;i=left;j=right;middle=strDate[(i+j)/2];do{while(strDate[i].compareTo(middle)<0&& i<right)i++; //找出左边比中间值大的数while(strDate[j].compareTo(middle)>0&& j>left)j--; //找出右边比中间值小的数if(i<=j){ //将左边大的数和右边小的数进行替换 tempDate=strDate[i];strDate[i]=strDate[j];strDate[j]=tempDate;i++;j--;}}while(i<=j); //当两者交错时停止if(i<right){quickSort(strDate,i,right);//从}if(j>left){quickSort(strDate,left,j);}}/** * @param args */public static void main(String[] args){String[] strVoid=newString[]{"11","66","22","0","55","22","0","32"};QuickSort sort=new QuickSort();sort.quickSort(strVoid,0,strVoid.length-1);for(int i=0;i<strVoid.length;i++){System.out.println(strVoid[i]+" ");}}}
7、有数组a[n],用java代码将数组元素顺序颠倒
//用下面的也可以//for(int i=0,int j=a.length-1;i<j;i++,j--) 是否等效于 for(int i=0;i<a.length/2;i++)呢? importjava.util.Arrays; public classSwapDemo{ public static void main(String[] args){ int [] a = new int[]{ (int)(Math.random() * 1000), (int)(Math.random()* 1000), (int)(Math.random() * 1000), (int)(Math.random() * 1000), (int)(Math.random() * 1000) }; System.out.println(a); System.out.println(Arrays.toString(a)); swap(a); System.out.println(Arrays.toString(a)); } public static void swap(int a[]){ int len = a.length; for(int i=0;i<len/2;i++){ int tmp = a[i]; a[i] = a[len-1-i]; a[len-1-i] = tmp; } }}
2.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
去零的代码: returnsb.reverse().toString().replaceAll("零[拾佰仟]","零").replaceAll("零+万","万").replaceAll("零+元","元").replaceAll("零+","零"); public class RenMingBi { /** * @param args add by zxx ,Nov 29, 2008 */ private static final char[]data = new char[]{ '零','壹','贰','叁','肆','伍','陆','柒','捌','玖' }; private static final char[]units = new char[]{ '元','拾','佰','仟','万','拾','佰','仟','亿' }; public static voidmain(String[] args) { // TODOAuto-generated method stub System.out.println( convert(135689123)); } public static Stringconvert(int money) { StringBuffer sbf =new StringBuffer(); int unit = 0; while(money!=0) { sbf.insert(0,units[unit++]); int number =money%10; sbf.insert(0,data[number]); money /= 10; } return sbf.toString(); }}
- 递归,排序等算法编程题
- C#实现(递归和非递归)快速排序和简单排序等一系列排序算法
- 递归排序编程笔试题
- 快速排序,递归算法
- 快速排序递归算法
- 插入排序递归算法
- 快速排序算法(递归)
- 归并排序递归算法
- 利用递归算法排序
- 递归排序算法
- 快速排序递归算法
- 堆排序递归算法
- 插入排序 递归算法
- 递归算法 快速排序
- 选择排序递归算法
- 快速排序--递归算法
- 全排序-递归算法
- 排序算法和递归算法
- Android 左右滑动 控件 (1)
- oracle-数据库备份方法
- 自定义xml文件保存到数据库
- 分区表信息整理 for10g
- UC故事 2011/10/10
- 递归,排序等算法编程题
- 从sockaddr_ipx到AF_IPX协议分析(一)
- 关于用Xmlbeans生成XML文件时,节点前会默认加上命名空间的问题
- 我的大学--孙鑫MFC笔记教程
- IT业:中小企业研发难,“苦练内功”是关键
- 浅谈WebService
- 如何定义Xsd文件
- SCA 之Tuscany 2 ——helloworld JAX-RS
- ASP.NET Cache