《2022年2022年经典JAVA算法 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年经典JAVA算法 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【程序 31】题目:将一个数组逆序输出。程序分析:用第一个与最后一个交换。其实,用循环控制变量更简单:for(int k=11;k=1;k-)System.out.print(myarrk+,);【程序 32】题目:取一个整数a 从右端开始的47 位。程序分析: 可以这样考虑:(1)先使 a 右移 4 位。(2)设置一个低4 位全为 1,其余全为0 的数。可用 (0 4)(3)将上面二者进行&运算。public classEx32public static void main(String args)int a=0;long b=18745678;a=(int) Math.floor(b %M
2、ath.pow(10,7)/Math.pow(10,3);System.out.println(a);【程序 33】题目:打印出杨辉三角形(要求打印出10 行如下图)1.程序分析:11112113311464115101051public classEx33public static void main(String args)int i,j;int a;a=new int88;for(i=0;i8;i+)aii=1;ai0=1;for(i=2;i8;i+)for(j=1;j=i-1;j+)aij=ai-1j-1+ai-1j;for(i=0;i8;i+)for(j=0;j=0;)for(int
3、 j=0;jarraysj+1)int temp=arraysj;arraysj=arraysj+1;arraysj+1=temp;for(int n=0;narrays.length;n+)System.out.println(arraysn);【程序 35】题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。import java.util.*;public classEx35public static void main(String args)int i, min, max, n, temp1, temp2;int a;System.out.println( 输
4、入数组的长度:);Scannerkeyboard = new Scanner(System.in);n = keyboard.nextInt();a = new intn;for (i = 0; i n; i+) System.out.print( 输入第 + (i + 1) + 个数据 );ai = keyboard.nextInt();/ 以上是输入整个数组max =0;min = 0;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - -
5、 - - / 设置两个标志 ,开始都指向第一个数for (i = 1; i amax)max =i; / 遍历数组 ,如果大于amax,就把他的数组下标赋给maxif (ai amin)min = i; / 同上,如果小于amin,就把他的数组下标赋给min/ 以上 for 循环找到最大值和最小值,max 是最大值的下标,min 是最小值的下标temp1 =a0;temp2 =amin; / 这两个 temp 只是为了在交换时使用a0 = amax;amax = temp1; / 首先交换a0和最大值amaxif (min != 0) / 如果最小值不是a0,执行下面amin =an - 1;
6、an - 1 = temp2; / 交换 amin 和 an-1 else / 如果最小值是a0,执行下面amax = an - 1;an - 1 = temp1;for (i = 0; i n; i+) / 输出数组System.out.print(ai + );【程序 36】题目:有n 个整数,使其前面各数顺序向后移m 个位置,最后m 个数变成最前面的 m 个数【程序 37】题目:有 n 个人围成一圈,顺序排号。从第一个人开始报数(从1 到 3 报数) ,凡报到3 的人退出圈子,问最后留下的是原来第几号的那位。import java.util.Scanner;public classEx3
7、7public static void main(String args) Scanner s = new Scanner(System.in);int n = s.nextInt();boolean arr = new booleann;for(int i=0; i 1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - if(arrindex =true) / 当在圈里时countNum +; / 报数递加if(countNu
8、m = 3) / 报道 3时countNum =0;/ 从零开始继续报数arrindex = false;/ 此人退出圈子leftCount -;/ 剩余人数减一index +;/ 每报一次数,下标加一if(index = n) / 是循环数数,当下标大于n 时,说明已经数了一圈,index = 0;/ 将下标设为零重新开始。for(int i=0; in; i+) if(arri = true) System.out.println(i);【程序 38】题目:写一个函数,求一个字符串的长度,在main 函数中输入字符串,并输出其长度。import java.util.Scanner;publ
9、ic classEx38public static void main(String args)Scanner s= new Scanner(System.in);System.out.println( 请输入一个字符串);String mys=s.next();System.out.println(str_len(mys);public static int str_len(String x)return x.length();题目:编写一个函数,输入n 为偶数时,调用函数求1/2+1/4+.+1/n, 当输入 n 为奇数时,调用函数 1/1+1/3+.+1/n【程序 39】题目:字符串排序
10、。import java.util.*;public classtestpublicstaticvoidmain(Stringargs)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - ArrayList list=new ArrayList();list.add(010101);list.add(010003);list.add(010201);Collections.sort(list);for(inti=0;ilist.si
11、ze();i+)System.out.println(list.get(i);【程序 40】题目:海滩上有一堆桃子,五只猴子来分。 第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。 第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?public classDgstatic int ts=0;/ 桃子总数int fs=1;/ 记录分的次数static int hs=5;/ 猴子数 .int tsscope=5000;/ 桃子数的取值范围.太大容易溢出 .pu
12、blic int fT(int t)if(t=tsscope)/ 当桃子数到了最大的取值范围时取消递归System.out.println( 结束 );return 0;elseif(t-1)%hs=0 & fs =hs)if(fs=hs)System.out.println( 桃子数= +ts + 时满足分桃条件);fs+=1;return fT(t-1)/5*4);/返回猴子拿走一份后的剩下的总数else/ 没满足条件fs=1;/ 分的次数重置为1return fT(ts+=1);/ 桃子数加 +1public static void main(String args)new Dg().fT(0);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -