华为机试题:循环报数
来源:互联网 发布:属于社交网络sns 编辑:程序博客网 时间:2024/05/17 02:35
描述:
输入1个数字和多个字符,中间均以空格隔开。假设数字取值为m(范围1~9),后面字符个数为n。假设n个字符围成一圈,从第一个字母开始循环报数,当数到m以后,第m个字母就出列,直到这n个字母全部出列。最后,按照出列的顺序输出这些字母,中间仍以空格隔开。取值范围:m为1到9, 字符个数n大于1小于20。
运行时间限制: 无限制
内存限制: 无限制
输入:
第一个为数字,后面为多个字符,均以空格隔开
输出:
输出重新排列后的字符,以空格隔开
样例输入:
3 a b c d e f g h i
样例输出:
c f i d h e b g a
答案提示:
建议采用循环链表
我的答案(JAVA):
import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Main{ private int m;// private List<Character> ch=new ArrayList<Character>(); /** * 输入 */ public void input(){ Scanner sc=new Scanner(System.in); String s=null; try { s=sc.nextLine(); String[] ssArr=s.split(" "); m=Integer.parseInt(ssArr[0]); for(int i=1;i<ssArr.length;i++){ ch.add(ssArr[i].charAt(0)); } } catch (Exception e) { m=-1; ch.clear(); }finally{ sc.close(); } } public void countOff(){ // 判断输入合法性 if(m<1||m>9){ return; } if(ch.size()<=1||ch.size()>=20){ return; } int i=(m-1)%ch.size(); while(ch.size()>0){ System.out.print(ch.get(i)+" "); ch.remove(i); i+=m-1; if(ch.size()>0) i=i%ch.size(); } } public static void main(String[] args){ Main m=new Main(); m.input(); m.countOff(); }}
0 0
- 华为机试题:循环报数
- 华为机试题-循环报数
- 2016华为机试题:循环报数
- 2015华为机试-循环报数
- 华为机试题【11】-报数删除人
- 2014先锋机试题:循环报数
- 华为上机题,循环报数
- 华为上机 循环报数 java
- 约瑟夫环 循环报数 华为oj
- 整数循环节求和-华为机试题
- 循环报数
- 循环报数
- 循环报数
- [华为机试练习题]28.报数
- 华为机试题——字符串循环转换
- 2016 华为机试题之整数循环节求和
- 循环报数问题
- 圆圈循环报数
- Find Minimum in Rotated Sorted Array
- hihoCoder_#1185_连通性·三·强连通分量
- 把握linux内核设计思想(十):内核同步
- python 对EXCEL的读写操作
- iOS学习(UIImageView)
- 华为机试题:循环报数
- 在会声会影X4的编辑器中使用自动摇动和缩放功能
- p2098
- 计蒜客ACM 最大子阵列 java
- 离职是件快乐的事
- hihoCoder_#1190_连通性·四·点的双连通分量(块)
- Leetcode # 148 Sort List
- 人生最大的捷径,是用时间和生命读一流的书
- c++和java中的接口,抽象类