cn.com.flywater.FiftyAlgorthm; import java.util.Scanner; public class
Thirty_fifthSwop { static final int N = 8; public static void main(String[] args)
{ int[] a = new int [N]; Scanner s = new Scanner(System.in); int index1 = 0,
index2 = 0; System.out.println("please input numbers"); for(int i=0; i<N; i++)
{ a[i] = s.nextInt(); System.out.print(a[i] + " "); } int max =a[0], min = a[0];
for(int i=0; i<a.length; i++) { if(a[i] > max) { max = a[i]; index1 = i; } if(a[i] <
min) { min = a[i]; index2 = i; } } if(index1 != 0) { int temp = a[0]; a[0] = a[index1];
a[index1] = temp; } if(index2 != a.length-1) { int temp = a[a.length-1]; a[a.length-
1] = a[index2]; a[index2] = temp; } System.out.println("after swop:"); for(int
i=0; i<a.length; i++) { System.out.print(a[i] + " "); } } } /*
【程序 36】 * 作者 若水飞天题目:有 n 个整数,使其前面各数顺序向后移 m
个位置,最后 m 个数变成最前面的 m 个数 **/ /* * 这个题不知道有什么好办法,
比较直接方法的是把这个数组分成两个数组, * 再将两个数组合起来,但如果
不 控 制 好 数 组 的 下 标 , 就 会 带 来 很 多 麻 烦 。 */ package
cn.com.flywater.FiftyAlgorthm; import java.util.Scanner; public class
Thirty_sixthBackShift { public static final int N =10; public static void
main(String[] args) { int[] a = new int[N]; Scanner s = new Scanner(System.in);
System.out.println("please input array a, ten numbers:"); for(int i=0; i<a.length;
i++) { a[i] = s.nextInt(); } System.out.println("please input m , one number:");
int m = s.nextInt(); int[] b = new int[m]; int[] c = new int[N-m]; for(int i=0; i<m;
i++) { b[i] = a[i]; } for(int i=m,j=0; i<N; i++,j++) { c[j] = a[i]; } for(int i=0; i<N-m;
i++) { a[i] = c[i]; } for(int i=m,j=0; i<N; i++,j++) { a[i] = b[j]; } for(int i=0;
i<a.length; i++) { System.out.print(a[i] + " "); } } } /*
【程序 37】 * 作者 若水飞天题目:有 n 个人围成一圈,顺序排号。从第一个人
开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子,问最后留下的是原来第
几 号 的 那 位 。 **/ /* * 这 个 程 序 是 完 全 抄 别 人 的 */ package
cn.com.flywater.FiftyAlgorthm; import java.util.Scanner; public class
Thirty_sevenCount3Quit { public static void main(String[] args) { Scanner s =
new Scanner(System.in); int n = s.nextInt(); boolean[] arr = new boolean[n];
for(int i=0; i<arr.length; i++) { arr[i] = true;//下标为 TRUE 时说明还在圈里 } int
leftCount = n; int countNum = 0; int index = 0; while(leftCount > 1)
{ if(arr[index] == true) {//当在圈里时 countNum ++; //报数递加 if(countNum ==
3) {//报道 3 时 countNum =0;//从零开始继续报数 arr[index] = false;//此人退出圈
子 leftCount --;//剩余人数减一 } } index ++;//每报一次数,下标加一 if(index ==
n) {//是循环数数,当下标大于 n 时,说明已经数了一圈, index = 0;//将下标设
为 零 重 新 开 始 。 } } for(int i=0; i<n; i++) { if(arr[i] == true)
{ System.out.println(i); } } } } /*【程序 38】 * 作者 若水飞天题目:写一个函数,
求一个字符串的长度,在 main 函数中输入字符串,并输出其长度。 */ package
cn.com.flywater.FiftyAlgorthm; public class Thirty_eighthStringLength { public
static void main(String[] args) { String s = "jdfifdfhfhuififffdfggee";
System.out.print("字符串的长度是:"); System.out.println(s.length()); } } *【程
序 39】 * 作者 若水飞天题目:编写一个函数,输入 n 为偶数时,调用函数求
1/2+1/4+...+1/n, 当输入 n 为奇数时,调用函数 1/1+1/3+...+1/n(利用指针函数) **/
package cn.com.flywater.FiftyAlgorthm; import java.text.DecimalFormat;