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));
}
}