50道经典的JAVA编程题(36-40),今天晚上心情压抑,不爽,继续做题,管它明天考试,我继续我的java,一个周末都在看微机原理看得的很头疼啊~明天该挂科就挂吧,不在乎了~~~
【程序36】 Array1.java
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
注:我不是很理解这个题,按我的理解来做吧比如n={1,2,3,4,5,6,7,8,9}
m=2,则应该得到的n={1,2,1,2,3,4,5,1,2}
m=3,则应该得到的n={1,2,3,1,2,3,1,2,3}
javapackage test50; import java.util.Scanner; /** * @author VellBibi *【程序36】 Array1.java *题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 */ public class Array1 { public static void move(int[] a, int m){ for(int i=a.length-2*m-1; i>=0; i--){//前面n-2*m个数 a[i+m] = a[i]; } for(int i=0; i<m; i++){ a[a.length-m+i] = a[i]; } } public static void printArray(int[] a){ for(int i=0; i<a.length; i++){ System.out.print(a[i]+" "); } System.out.println(); } public static void main(String[] args) { int[] a = new int[]{1,2,3,4,5,6,7,8,9}; printArray(a); System.out.println("输入m:"); int m = new Scanner(System.in).nextInt(); move(a, m); printArray(a); } }
【程序37】 Test3Quit.java(同题:http://www.cnblogs.com/VellBibi/p/3504242.html#test1)
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下
的是原来第几号的那位。
javapackage test50; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * @author VellBibi *有200个小朋友拉成一个圆圈,从其中一个小朋友开始依次编号1-200,从1号小朋友开始循环1-3报数, *数到3的小朋友就退出。编写一个Java应用程序,计算出最后一个小朋友的号码是多少。 */ public class Test3Quit { /** * @param l 剩下小朋友List * @param n 第n个开始报数 * @param m 数到m的人退出 * @return 最后一个小朋友的号码 */ public static int play(List<Integer> l, int n, int m){ int s = l.size(); if(s <= 1) return l.get(0); else { n = n + m - 1; while(n >= s) n = n-s; l.remove(n); return play(l, n, m); } } public static void main(String[] args) { System.out.println("输入有多少个小朋友:"); Scanner s = new Scanner(System.in); int n = s.nextInt(); List<Integer> l = new ArrayList<Integer>(); for(int i=1; i<=n; i++){ l.add(i); } System.out.println(play(l, 0, 3)); } }
【程序38】 TestLength.java
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
javapackage test50; import java.util.Scanner; /** * @author VellBibi *【程序38】 TestLength.java *题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 */ public class TestLength { public static int getLength(String str){ return str.toCharArray().length; } public static void main(String[] args) { System.out.println("输入你的字符串:"); String str = new Scanner(System.in).next(); System.out.println("你的字符串长度为:"+getLength(str)); } }
【程序39】 Test2.java
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数
1/1+1/3+...+1/n(利用指针函数)
注:java里面貌似没有指针函数吧!这个题是不是C++的啊!我就不纠结指针函数了,实现功能就行了
javapackage test50; import java.util.Scanner; /** * @author VellBibi *【程序39】 Test2.java *题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 *1/1+1/3+...+1/n(利用指针函数) *注:java里面貌似没有指针函数吧!这个题是不是C++的啊!我就不纠结指针函数了,实现功能就行了 */ public class Test2 { /** * 一个函数搞定两种情况 * @param n * @return */ public static double sum(int n){ double ans = 0; int i = 1; if(n%2 == 0) i = 2; for(; i<=n;i=i+2){ ans = ans + 1.0/i; } return ans; } public static void main(String[] args) { int n = new Scanner(System.in).nextInt(); System.out.println(sum(n)); } }
【程序40】 Test3.java
题目:字符串排序。
注:把字符串转成char,进行冒泡排序
javapackage test50; import java.util.Scanner; /** * @author VellBibi *【程序40】 Test3.java *题目:字符串排序。 *注:把字符串转成char,进行排序 */ public class Test3 { /** * 冒泡排序 * @param str * @return */ public static String bubbleSort(String str){ boolean flag = true; char[] chs = str.toCharArray(); char cup = 0; for(int i=0; i<str.length()-1 && flag; i++){ flag = false; for(int j=0; j<str.length()-1-i; j++){ if((int)chs[j+1] < (int)chs[j]){ flag = true; cup = chs[j+1]; chs[j+1] = chs[j]; chs[j] = cup; } } } return new String(chs); } public static void main(String[] args) { String str = new Scanner(System.in).next(); System.out.println(bubbleSort(str)); } }