双向链表一共7个孩子,从1号孩子开始顺时针数数, * 每个孩子数一个数,遇到7的倍数或数字中含有7,则该孩子不出声,只拍一下手, * 数数的方向逆转,下一个孩子数下一个数字,求100是哪个孩子数的

来源:互联网 发布:php二维数组去除重复 编辑:程序博客网 时间:2024/04/30 14:39
package com.zhangle.arithmetic;




/**
 * 一共7个孩子,从1号孩子开始顺时针数数,
 * 每个孩子数一个数,遇到7的倍数或数字中含有7,则该孩子不出声,只拍一下手,
 * 数数的方向逆转,下一个孩子数下一个数字,求第100是哪个孩子数的
 * @author lenovo
 *
 */
public class TwoWayLinklist {


private int data;
private TwoWayLinklist next;
private TwoWayLinklist pre;
public TwoWayLinklist(int x){
data=x;

}
public void append(TwoWayLinklist x) {
TwoWayLinklist p=this;
while (p.next!=null) {
p=p.next;
}
p.next=x;
}
public void appendPre(TwoWayLinklist x){
TwoWayLinklist p=this;
while (p.pre!=null) {
p=p.pre;
}
p.pre=x;
}


public static void main(String[] args) {
int No=1;//第几号人

int i=1;//数的数字
TwoWayLinklist t1=new TwoWayLinklist(i);
while (i<=100) {
i++;
if (i%7!=0) {
if ((i/7)%2==0) {//偶数向下走
t1.append(new TwoWayLinklist(i));
}
else {//奇数向前走
t1.appendPre(new TwoWayLinklist(i));
}
if (i==100) {
while (t1.next!=null) {
No++;
t1=t1.next;
}
while (t1.pre!=null) {
No++;
t1=t1.pre;
}
System.out.println("第"+No+"号小朋友数的100");
break;
}
}
else {
i++;
t1=new TwoWayLinklist(i);//7的整数倍清空一次
}


}



}


}
16 0
原创粉丝点击