循环报数 Java实现

输入1个数字和多个字符,中间均以空格隔开。假设数字取值为m(范围1~9),后面字符个数为n。假设n个字符围成一圈,从第一个字母开始循环报数,当数到m以后,第m个字母就出列,直到这n个字母全部出列。最后,按照出列的顺序输出这些字母,中间仍以空格隔开。取值范围:m为1到9, 字符个数n大于1小于20。

网上很多方法感觉好乱,很多所谓的Java都是根据c的思想完成的没有Java的灵活性。

附代码:

import java.util.*;

public class Recycle {

static Scanner scanner = new Scanner(System.in);
    static int num;
    static String str;
    static LinkedList<String> list = new LinkedList<String>();
    static LinkedList<String> result = new LinkedList<String>();

public static void main(String[] arg) {

input();
        output();

}

private static void output() {
          pushNum();

Iterator it = result.iterator();
        while (it.hasNext()) {
            System.out.print(it.next()+" ");
        }
    }

private static void pushNum() {
        int i=1;
        while(list.size()>0){
        //    System.out.println(i+"!! ");
            
            Iterator it = list.iterator();
            while (it.hasNext()) {
                String node=(String) it.next();
        
                if(i==num){
                    
                    result.add(node);
                    it.remove();
                    i=0;
                    }
                i++;
            }
        }
        
    }

private static void input() {
        str = scanner.nextLine();
        String [] tmp=str.split(" ");
        num=Integer.parseInt(tmp[0]);
        for(int i=1;i<tmp.length;i++){
            list.add(tmp[i]);
        }
    
    }

}

上一篇:用简单直白的方式讲解A星寻路算法原理


下一篇:Unity3D配合AndroidStudio打包