本文编写于 233 天前,最后修改于 233 天前,其中某些信息可能已经过时。

【程序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}

【程序37】 Test3Quit.java(同题:http://www.cnblogs.com/VellBibi/p/3504242.html#test1)
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下
的是原来第几号的那位。

package 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函数中输入字符串,并输出其长度。

package 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++的啊!我就不纠结指针函数了,实现功能就行了

package 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,进行冒泡排序

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