循环报数
来源:互联网 发布:psp搜索数据 编辑:程序博客网 时间:2024/05/22 15:13
输入1个数字和多个字符,中间均以空格隔开。假设数字取值为m(范围1~9),后面字符个数为n。
假设n个字符围成一圈,从第一个字母开始循环报数,当数到m以后,第m个字母就出列,直到这n个字母全部出列
最后,按照出列的顺序输出这些字母,中间仍以空格隔开。取值范围:m为1到9, 字符个数n大于1小于20。
import java.util.Scanner;
class Node{
Node next=null;
char data;
public Node(char data){
this.data=data;
}
}
class MyList{
Node head=null;
Node tail=null;
public void addNode(char data){
Node node=new Node(data);
if(head==null){
head=node;
tail=node;
tail.next=head;
}
node.next=head;
tail.next=node;
tail=tail.next;
}
public int length(){
int length=1;
if(head==null){
return 0;
}
if(head==tail){
return 1;
}
Node tmp=head.next;
while(tmp!=null && tmp!=tail.next){
length++;
tmp=tmp.next;
}
return length;
}
public void delete(int m){
Node preNode=head;
Node tmp=preNode;
int length=length();
while(length>0){
for(int i=1;i<m;i++){
preNode=tmp;
tmp=tmp.next;
}
System.out.print(tmp.data+" ");
Node proNode=tmp.next;
preNode.next=tmp.next;
tmp=proNode;
length--;
}
}
}
public class CycleNumber {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String s=scanner.nextLine();
int m=Integer.parseInt(String.valueOf(s.charAt(0)));
char[] c=new char[s.length()-1];
for(int i=0;i<s.length()-1;i++){
c[i]=s.charAt(i+1);
}
MyList list=new MyList();
for(int j=1;j<c.length;j=j+2){
list.addNode(c[j]);
}
list.delete(m);
}
}
- 循环报数
- 循环报数
- 循环报数
- 循环报数问题
- 圆圈循环报数
- 循环删除报数问题
- 循环报数问题
- java 循环报数
- 循环报数游戏
- 约瑟夫循环报数问题
- 华为上机题,循环报数
- [蓝桥杯][java]循环报数问题
- 华为机试题:循环报数
- 华为机试题-循环报数
- 华为上机 循环报数 java
- 报数—循环链表
- 2014先锋机试题:循环报数
- 2015华为机试-循环报数
- c++ 字符类型总结区别wchar_t,char,WCHAR(转)
- iOS支付宝集成遇到的问题
- Linux学习记录(2)安装Linux系统以及VirtualBox增强工具
- RecyclerView高度随Item自适应 GridLayoutManager和LinearLayoutManager都适用
- [Android Debug]Gradle build daemon disappeared unexpectedly (it may have been stopped, killed or may
- 循环报数
- IOCP模型与EPOLL模型的比较 服务器优化
- 插入排序
- 由于/var/lib目录权限导致SSH不能用
- Spark源码阅读笔记之Broadcast(三)
- mysql源码安装
- 集成CCFlow工作流与GPM的办公系统驰骋CCOA介绍(三)
- 使用C#选择文件夹、打开文件夹、选择文件
- 估算鱼的条数