初学java碰到的一些问题

来源:互联网 发布:openwrt 查看网络配置 编辑:程序博客网 时间:2024/05/16 05:55

一个是36选7的算法,用数据结构中的循环链表实现的:

/*直接改动M和N的值应该可以实现M选N的能力
 *就是用36选35应该也没问题
 *本人没测试过,而且代码有点乱
 *高手看着不爽就改改吧*/

class MyNumber
{
 //属性   
 int intNumber=0;
 MyNumber next=null;
 
 //定义两个常量来解决36选7,只要改动这两个数就可以任意选了
 final static int M = 36;  
 final static int N = 7;
 //如果在后面找不到对应的建议用ctrl+F来找
 
 //定义的方法
 public MyNumber addPoint()
 {
  MyNumber temp=new MyNumber();
  this.next=temp;
  temp.intNumber=this.intNumber+1;
  temp.next=null;
  return temp;
 }
 
 //创建一个循环链,有36个节点,头节点是head
 public void creatLine(MyNumber head)    
 {
  
  MyNumber p = head;
  for(int i=0;i<M;i++)
  {
   MyNumber s=new MyNumber();
   p.next=s;
   s.intNumber=p.intNumber+1;
   s.next=null;
   p=p.next;
   s.show();
  }
  p.next=head;  //构成循环,为了随机查找的时候方便
 }
 
 //删掉后面的点
 public void delPoint(MyNumber p)    
 {
  
  p.next=p.next.next;
 }
 
 //大奖开始摇啦  摇出来的都删掉
 //做的还是有点乱,最好改成通用的
 public void choosePoint(MyNumber head) 
 {
  MyNumber p = head;
  System.out.println ("/n/n/n");
  for(int i=0;i<N;i++)
  {
   int temp=(int)(Math.random()*2*M)+1;
   for(int j=0;j<temp;j++)
   {
    p=p.next;
   }
   if(p.next==head)
   {
    p=p.next;
   }
   p.next.show();
   this.delPoint(p); 
  
  }
  System.out.println ();
 } 
 
 public void show()
 {
  System.out.print (intNumber+"/t");
 } 
}

public class ChoseNumber
{
 public static void main(String[] args)
 {   
  MyNumber head = new MyNumber();
  
  head.creatLine(head);  //建链
  
  head.choosePoint(head); //摇奖
 }
}

另一个是生成新点,技术含量不高,仅供参考

/**
 *This is my code.
 *<code>new&nbsp;File(this.{@link #getAbsolutePath}())</code>
 *
 *@author:Zds
 *version:1.0
 */
class MyPoint
{
 private int x;
 private int y;
 
 public void setXY(int m, int n)
 {
  x=m;
  y=n;
 }
 public int getX()
 {  
  return x;
 }
 public int getY()
 {
  return y;
 }
 public MyPoint clonePoint()
 {
  MyPoint tp=new MyPoint();
  tp.x=-this.y;
  tp.y=-this.x;
 
  return tp;
 }
 public void show()
 {
  System.out.println("The point is:("+x+","+y+")");
 }
}
class TestPoint
{
 public static void main(String[] args)
 {
  MyPoint mp = new MyPoint();
  mp.setXY(8,60);
  mp.show();
  MyPoint other = mp.clonePoint();
  other.show();
 }
}

原创粉丝点击