java编程,一个小面试题,求大神指教?
从d:\input.txt中读入全部的字母(空格除外),将全部的字母构成环状结构,从键盘读入整数n1,n2,请做如下操作:以A节点后第n1个节点为起点,将步长为n2节点移...
从d:\input.txt 中读入全部的字母(空格除外),将全部的字母构成环状结构, 从键盘读入
整数n1,n2,请做如下操作:以A 节点后第n1个节点为起点,将步长为n2节点移除环,
作为输出的第一个节点,并将该点的下一个节点作为起点,再移除步长为n2的节点,直至
环中所有节点全部移除,将移除的节点序列,输出到d:\output.txt 文件中。
举例:
设n1 =3
设n2 =5
环
A –>B–> C–> D–> E–> F–> G–> H–> I–> J–> K–> L–> M–> N–> O–> P–> Q–> R–> S–>
T–>U–>V–>W–>X–>Y–>Z ‐> A
操作
A B C DE F GH IJ KLM NOP Q R S TU VWX Y Z
G 移除
A B C DE F H IJ KLMN OPQ R S T UVWX YZ
L 移除
A B C DE F H IJ KMN OPQ R S T UVWX YZ
Q 移除
…
输出序列:
d:\output.txt 的内容如下
GLQ VA …
最终d:\input.txt中的字母全部输出到d:\output.txt中 展开
整数n1,n2,请做如下操作:以A 节点后第n1个节点为起点,将步长为n2节点移除环,
作为输出的第一个节点,并将该点的下一个节点作为起点,再移除步长为n2的节点,直至
环中所有节点全部移除,将移除的节点序列,输出到d:\output.txt 文件中。
举例:
设n1 =3
设n2 =5
环
A –>B–> C–> D–> E–> F–> G–> H–> I–> J–> K–> L–> M–> N–> O–> P–> Q–> R–> S–>
T–>U–>V–>W–>X–>Y–>Z ‐> A
操作
A B C DE F GH IJ KLM NOP Q R S TU VWX Y Z
G 移除
A B C DE F H IJ KLMN OPQ R S T UVWX YZ
L 移除
A B C DE F H IJ KMN OPQ R S T UVWX YZ
Q 移除
…
输出序列:
d:\output.txt 的内容如下
GLQ VA …
最终d:\input.txt中的字母全部输出到d:\output.txt中 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
展开全部
public static void show(){
List<String> l=new ArrayList<String>();//原始集合
List<String> l2=new ArrayList<String>();//记录集合
Scanner in=new Scanner(System.in);
for(int i=65;i<(65+26);i++){
l.add(String.valueOf((char)i));
}
l.add(String.valueOf((char)65));
boolean flag=true;
System.out.println("请输入起点:");
int n1=in.nextInt();
System.out.println("请输入步长:");
int n2=in.nextInt();
int temp=n1; //动态起点
while(flag){
if(temp>27){
break;
}
l2.add(l.get(temp-1+(n2-1)));
temp=temp-1+n2+1;
}
for(int i=0;i<l2.size();i++){
System.out.print(l2.get(i));
}
}
不知道楼主需不需要io流操作的代码,暂时写了这么多。下面是输出结果
唉,本来想贴图片的,说我flash版本太低。--,
请输入起点:
3
请输入步长:
5
GLQVA
List<String> l=new ArrayList<String>();//原始集合
List<String> l2=new ArrayList<String>();//记录集合
Scanner in=new Scanner(System.in);
for(int i=65;i<(65+26);i++){
l.add(String.valueOf((char)i));
}
l.add(String.valueOf((char)65));
boolean flag=true;
System.out.println("请输入起点:");
int n1=in.nextInt();
System.out.println("请输入步长:");
int n2=in.nextInt();
int temp=n1; //动态起点
while(flag){
if(temp>27){
break;
}
l2.add(l.get(temp-1+(n2-1)));
temp=temp-1+n2+1;
}
for(int i=0;i<l2.size();i++){
System.out.print(l2.get(i));
}
}
不知道楼主需不需要io流操作的代码,暂时写了这么多。下面是输出结果
唉,本来想贴图片的,说我flash版本太低。--,
请输入起点:
3
请输入步长:
5
GLQVA
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询