qgy总结的一些算法

产生不重复的随机数:1

public   class   Test {
     
      public   static   void   main(String[] args) {
              //产生10个15以内不重复的数字。
           Test t =   new   Test();
           t.test2();
     }

      public   void   test1(){
           Random  r =   new   Random();
              int [] arr =   new   int [10];
           
              for   (   int   i = 0; i < arr.   length ; i++) {
                   boolean   flag=   false ;
                   int   num = r.nextInt(15);
                   for   (   int   j = 0; j < arr.   length ; j++) {
                        if (num==arr[j]){
                           i--;
                           flag=   true ;
                              break ;
                     }
                }
                   if (!flag)
                  arr[i] = num;
           }
              for   (   int   c : arr) {
                System.   out .print(   " " +c);
           }
     }
     
      public   void   test2(){
           Random  r =   new   Random();
              long   [] arr =   new   long [935];
              boolean   flag[]=   new   boolean [1000];
         flag[0]=   true ;
              for   (   int   k=1;k<flag.   length ;k++) {
                flag[k]=   false ;
           }
           
              for   (   int   i = 0; i < arr.   length ; i++) {
                   int   num = r.nextInt(1000);
                   if (flag[num]==   false ){
                       arr[i] = num;
                       flag[num]=   true ;
                }   else {
                     i--;
                }
           }
           
           System.   out .println(   "--------------" );
              for   (   long   c : arr) {
                System.   out .print(   " " +c);
           }
     }
}




打印以下图像:(次方)2
public     class   Test1 {
      /*
      * 1                       0
      * 2                       1
      * 3 4                     2
      * 5 6 7 8                 3
      * 9 10 11 12 13 14 15 16  4
      */
     
      public   static   void   main(String[] args) {
           System.   out .println();
           Test1 t=   new   Test1();
           t.printData(135);
     }
     
      //解法
      public   void   printData(   int   n) {
              int   c=0;
              for   (   int   i = 1; i <= n; i++) {
                     if i<=Math. pow(2, c)){
                        System.   out .print( i+ " " );     
                   }   else {
                        ++c;
                        -- i;
                        System.   out .println();
                   }
           }
     }

}




/**
 * 这是用java反射来实现对对象的属性,方法,类名的取值。再组成一条万能的insert 语句。3
 *   @author   小高
 */

public   class   Test2 {

      public   static   void   main(String[] args)   throws   Exception {
           Test2 t=   new   Test2();
           Student stu=   new   Student();    //可以对任意对象操作
           stu.setName(   "小高" );
           stu.setAge(20);
           stu.setId(11);
           
         String sql=t.createInsertSql(stu);
         System.   out .println(sql);
     }
     
      private   String createInsertSql(Object obj)   throws   Exception {
      Class cls=obj.getClass();
     String sql= "insert into " +cls.getSimpleName()+   " ("   //类名
     Field fields[]=cls.getDeclaredFields();
     String columnName= "" ;   //列名
     String columnValue= "" ;   //列值
     Object objs[]= new   Object[fields. length ];    //多少个字段就多少个值
      for   ( int   i = 0; i < fields.   length ; i++) {
           String fieldName=fields[i].getName();    //获得字段
                String fieldMethodOfget=fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1, fieldName.length());
                Method methodofget = cls.getMethod( "get" +fieldMethodOfget,   null );
                Object value= methodofget.invoke(obj,   null );   //字段的值     
                   if (value!=   null ){    //判断是否设置值
                     columnName+=   "," +fieldName;
                        if (value.getClass().getSimpleName().equals(   "String" )){
                           columnValue+=   ",'" +value+   "'" ;
                     }   else {
                           columnValue+=   "," +value;
                     }
                }
           }
     columnName=columnName.substring(1, columnName.length());
     sql+=columnName+ ") values (" ;
     columnValue=columnValue.substring(1, columnValue.length());
     sql+=columnValue + ")" ;
      return   sql;
     }
}



package   com.one1;


public   class   Test3 {

/* 蛇形矩阵4
     【样例输出】
     1 3 6 10 15
     2 5 9 14 
     4 8 13 
     7 12 
     11
*/
     
      public   static   void   main(String[] args) {
           Test3 t=   new   Test3();
           t.test(8);
     }
     
      public   void   test( int   n)  {
              int   arr[][]=   new   int [n][n];
           arr[0][0]=1;
              int   column=n;
              for   (   int   i = 0; i < n; i++) {
                   for   (   int   j = 0; j < column; j++) {
                        if (j==0){   //第一列
                              if (i>0)
                            arr[i][j]=arr[i-1][j]+i;
                     }   else {
                              //一行中某列与前一列的关系
                           arr[i][j]=arr[i][j-1]+(i+1+j);
                     }
                }
              column-=1;
           }
           
              //输出
              for   (   int   i = 0; i < n; i++) {
                   for   (   int   j = 0; j < n; j++) {
                        if (arr[i][j]!=0)
                     System.   out .print(arr[i][j]+   " " );
                }
                System.   out .println();   //换行
           }
     }
     
}





public   class   Test4 {

      /*5
     01--02  06--07  15--16  28--29     
        /   /   /   /   /   /   /
     03  05  08  14  17  27  30  43     
      | /   /   /   /   /   /   / |
     04  09  13  18  26  31  42  44    
        /   /   /   /   /   /   /
     10  12  19  25  32  41  45  54     
      | /   /   /   /   /   /   / |
     11  20  24  33  40  46  53  55   
        /   /   /   /   /   /   /
     21  23  34  39  47  52  56  61   
      | /   /   /   /   /   /   / |
     22  35  38  48  51  57  60  62   
        /   /   /   /   /   /   /
     36--37  49--50  58--59  63--64    
     */
 
      public   static   void   main(String[] args) {
           Test4 t=   new   Test4();
           t.printData(t.test2(8));
     }
     
     
      //核心算法
      public   int [][] test2(   int   n){
              int   arr[][]=   new   int [n][n];
              for   (   int   i = 0; i < n; i++) {
                   for   (   int   j=0,c=i;j<=i&&c>=0;j++,c--) {
                        if (i%2==0){    //偶数行
                              if (c==i){   //建立与上次循环的关系
                                   if (c==0)
                                     arr[c][j]=1;
                                   else
                                  arr[c][j]=arr[c-1][j]+1;
                            }
                              else
                             arr[c][j]=arr[c+1][j-1]+1;
                     }   else {   //奇数行
                            if (c==i)
                             arr[j][c]=arr[j][c-1]+1;    //建立与上次循环的关系
                            else
                            arr[j][c]=arr[j-1][c+1]+1;
                     }
                }
        }
              return   arr;
     }

      //打印数据
      public   void   printData(   int   arr[][]){
              int   n=arr.   length ;
              for   (   int   i = 0; i < n; i++) {
                   for   (   int   j = 0; j < n; j++) {   
                        if (arr[i][j]>=10)
                       System.   out .print(arr[i][j]+   " " );
                        else
                         if (arr[i][j]!=0)
                       System.   out .print(   "0" +arr[i][j]+   " " );
                     
                }
                System.   out .println();
           }
     }
     
}




public   class   Test5 {

/*6
   1
   5     2
   8     6     3
   10    9     7      4
 
   分析:
     arr[1][0]  arr[3][3]
     arr[2][0]  arr[3][2]         
*/
      public   static   void   main(String[] args) {
           Test5 t=   new   Test5();
           Test4 t2=   new   Test4();   //输出
           t2.printData(t.test(10));
           
     }
     
      public   int [][] test( int   n){
              int   arr[][]=   new   int [n][n];
              for   (   int   i = 0; i < n; i++) {   //控制次数
                   for   (   int   j = 0,c=i;j<n&&c<n; j++,c++) {    //一次循环打印的列数
                              if (c==i){
                                   if (c==0)
                                   arr[c][j]=1;
                                   else
                                   arr[c][0]=arr[n-1][n-c]+1;
                           }
                              else {
                             arr[c][j]=arr[c-1][j-1]+1;
                           }    
                }
           }
              return   arr;
     }
}





//冒泡排序,选择排序,插入排序。7

package   com.mysort;

public   class   One {

     
     
      public   static   void   main(String[] args) {
              int   arr[]={1,4,9,7,3,8,2,6};
           
              /*冒泡排序
            for ( int i = 0; i < arr.length-1; i++) {
                for ( int j = i+1; j < arr.length; j++) {
                     if( arr[i]>arr [j]){
                            int t=arr [i];
                            arr[i]=arr [j];
                            arr[j]=t;
                     }
                }
           }*/
     
           
              // 选择排序:每次从剩下的找到最大值放在已经排好中的后面
              int   index=0;     //改变索引
              int   max;   //默认最大
           
              for   (   int   i = 0; i < arr.   length ; i++) {
                
            max=arr[index];    //最大值      
              int   maxIndex=index;   //最大下标

                   for   (   int   j=index; j < arr.   length ; j++) {     //找比较每一轮的最大值,并且记录下标位置
                     if (max<arr[j]){
                        max=arr[j];
                        maxIndex=j;
                   }
                }
                
             //把找到的最大值放到第一个位置,第一个位置的数放到这一轮找到最大值的位置
                   int   t=arr[i];
                arr[i]=max;
                arr[maxIndex]=t;
                
                   //从下一个开始找
                index++;
           }
           
           
                   /* 插入排序: 每次和最后一个比较,若比前面下则再换位置,直到不比前面小。
                 int count=0;
                 int pos ;
                
                for ( int i = 1; i < arr.length; i++) {
                      pos=count; //一开始进来就是和最后一个数比 
                      int index=i;
                      while( arr[index]<arr[pos ]&&pos>=0){ //排序数 如果比已经排好的最后一个数小则,和前一个比较
                            int t=arr [pos];
                            arr[pos ]=arr[index];
                            arr[index]=t;
                           
                            index-=1;  //注意:这是个换了位置的数
                            pos--; //准备和前一个比较
                      }
                      count++;
                }*/
                
     
           
              /* 输出 */
              for   (   int   j = 0; j < arr.   length ; j++) {
                   System.   out .print(arr[j]+   " " );
            }
                
     }
}






//快速排序8
public   class   Two{
     
      public   static   void   main(String[] args) {
              long   start=System. currentTimeMillis();
              int   arr[] ={12,34,11,99,54,21,9,5,101};
           Two t=   new   Two();
           t.quicksort(arr,0,arr.   length -1);
           t.print(arr);
           System.   out .println(   "所花费时间:"   +(System.currentTimeMillis()-start));
     }
     
     
      public   void   quicksort(   int   arr[],   int   left,   int   right){
          if (left < right){
               int   key = arr[left];
               int   low = left;
               int   high = right;
              while (low < high){
                      while (low < high && arr[high] > key){
                            high--;
                    }
                    arr[low] = arr[high];
                      while (low < high && arr[low] < key){
                            low++;
                    }
                    arr[high] = arr[low];
             }
              arr[low] = key;
              quicksort(arr,left,low-1);
              quicksort(arr,low+1,right);
        }
     }
     
     
     
      //打印
      public   void   print( int   arr[]) {
              for   (   int   i = 0; i < arr.   length ; i++) {
                System.   out .print(arr[i]+   " " );
           }
     }
}




//模仿遍历树节点,递归遍历。9
package   com.bean;

import   java.util.*;
public   class   LookWord {

      private   ArrayList<TreeBean>   treeList   =   new   ArrayList<TreeBean>();    //初始

      public   static   void   main(String[] args) {
           LookWord lw =   new   LookWord();
           lw.init();   // 初始化数据
              //lw.findAll(lw.treeList);  //查找指定的集合
        lw.findWho(   "11" ,lw.   treeList );   //找到指定的id 的集合
     }

        // 查找id的父节点
      public   void   findWho(String id,ArrayList<TreeBean> ts) {
              for   (TreeBean t : ts) {
                   if (t.getId().equals(id)&&t.getChildren()!=   null ){    //找到了那个对象就不断查找出来
                       findAll(t.getChildren());
                }   else {
                        if (t.getChildren()!=   null ){
                           findWho(id,t.getChildren());
                     }
                }
           }
     }

      // 根据查找的集合查找
      public   void   findAll(ArrayList<TreeBean> findList) {
              // 根据集合的大小找子集合作为查找集合的目标
              for   (   int   i = 0; i < findList.size(); i++) {
                TreeBean tb = findList.get(i);
                System.   out .println(tb.toString());   // 不管有没有子节点都要进行输出
                   if   (tb.getChildren() !=   null ) {   // 如果有子节点则继续输出
                     findAll(tb.getChildren());   // 如果子节点不为空则继续查找
                }
           }
     }
     

      // 初始化
      private   void   init() {
           ArrayList<TreeBean> children111 =   new   ArrayList<TreeBean>();
           TreeBean tb111 =   new   TreeBean(   "1111" ,   "one1111" ,   "111" );
           TreeBean tb112 =   new   TreeBean(   "1112" ,   "one1112" ,   "111" );
           children111.add(tb111);
           children111.add(tb112);
           TreeBean tb11 =   new   TreeBean(   "111" ,   "one111" ,   "11" );
           tb11.setChildren(children111);
           TreeBean tb12 =   new   TreeBean(   "112" ,   "one112" ,   "11" );
           TreeBean tb13 =   new   TreeBean(   "113" ,   "one113" ,   "11" );
           ArrayList<TreeBean> children11 =   new   ArrayList<TreeBean>();
           children11.add(tb11);
           children11.add(tb12);
           children11.add(tb13);
              // 为11 设置子节点
           TreeBean tp11 =   new   TreeBean(   "11" ,   "one1" ,   "1" );
           tp11.setChildren(children11);
           TreeBean tp12 =   new   TreeBean(   "12" ,   "one2" ,   "1" );
           ArrayList<TreeBean> children1 =   new   ArrayList<TreeBean>();
           children1.add(tp11);
           children1.add(tp12);
              // 为1设置12,11子节点
           TreeBean tb1 =   new   TreeBean(   "1" ,   "one" ,   "0" );
           tb1.setChildren(children1);
           ArrayList<TreeBean> children2 =   new   ArrayList<TreeBean>();
           children2.add(   new   TreeBean(   "21" ,   "two1" ,   "2" ));
           children2.add(   new   TreeBean(   "22" ,   "two2" ,   "2" ));
              // 为2设置子节点
           TreeBean tb2 =   new   TreeBean(   "2" ,   "two" ,   "0" );
           tb2.setChildren(children2);
              treeList .add(tb1);
              treeList .add(tb2);
     }
}

对象实体:
package   com.bean;

import   java.util.ArrayList;

public   class   TreeBean {

      private   String   id ;
      private   String   text ;
      private   String   pid ;
      private   ArrayList<TreeBean>   children =   new   ArrayList<TreeBean>();
     
      public   TreeBean(String id,String text ,String pid){
              this .   id =id;
              this .   text =text;
              this .   pid =pid;
     }
     
     
      public   String getId() {
              return   id ;
     }
      public   void   setId(String id) {
              this .   id   = id;
     }
      public   String getText() {
              return   text ;
     }
      public   void   setText(String text) {
              this .   text   = text;
     }
      public   String getPid() {
              return   pid ;
     }
      public   void   setPid(String pid) {
              this .   pid   = pid;
     }
      public   ArrayList<TreeBean> getChildren() {
              return   children ;
     }
      public   void   setChildren(ArrayList<TreeBean>  children) {
              this .   children   = children;
     }


      @Override
      public   String toString() {
              return   "TreeBean [id="   +   id   +   ", text="   +   text   +   ", pid="   +   pid   +   "]" ;
     }
     
     
     
}




//排名前三名的同学成绩:10

public   class   Three {
     String [] name ;
       int   [] score ;
      public   String[] getName() {
              return   name ;
     }
      public   void   setName (String[] name) {
              this .   name   = name;
     }
      public   int [] getScore() {
              return   score ;
     }
      public   void   setScore(   int [] score) {
              this .   score   = score;
     }
      public   Three( int   len){
       String[] name= new   String[len];
         int [] score= new   int   [len];
     }
    
      public   Three(){
           
     }
     public   void   paiXu(){
          int   temps ;
        String tempn;
          for ( int   i=0;i< score . length ;i++){
                for (   int   j=0;j<   score .   length ;j++){
                     if (   score [i]<   score [j]){
                       temps=   score [i];
                         score [i]=   score [j];
                         score [j]=temps;
                      
                       tempn=   name [i];
                         name [i]=   name [j];
                         name [j]=tempn;
                   }
              }
        }
   }
  
@Override
public   String toString() {
      return   "Three [name="   + Arrays. toString( name ) +   ", score="
                + Arrays. toString( score ) +   "]" ;
}


     public     void   sd(){
       
          int   one=0,count1=0,two=0,count2=0,three=0,count3=0;
           one=   score [   score .   length -1];   //取第一名
              for (   int   i=0;i<   score .   length ;i++){
              if (   score [i]==one) 
                 count1++;
           }
           two=   score [   score .   length -1-count1];    // 取第二名 arr9  arr8  arr7
              for (   int   i=0;i<   score .   length ;i++){
              if (   score [i]==two)  
                 count2++;
           }
           three=   score [   score .   length -1-count1-count2];    // 取第二名 arr9  arr8  arr7 arr6  arr5
              for (   int   i=0;i<   score .   length ;i++){
              if (   score [i]==three)  
                 count3++;
           }
     
           System.   out .print(   "\n第一名" +count1+ "个:"   );
              for (   int   i=   name .   length -1;i>   name .   length -1-count1;i--)
               System.   out .print(   name [i]+   ":" +   score [i]);
           System.   out .println(   "\n" );
           System.   out .print(   "第二名" +count2+ "个:"   );
              for (   int   i= name .   length -1-count1;i>   name .   length -1-count1-count2;i--)
                System.   out .print(   name [i]+   ":" +   score [i]);
           System.   out .println(   "\n" );
           System.   out .print(   "第三名" +count3+ "个:"   );
              for (   int   i= name .   length -1-count1-count2;i>   name .   length -1-count1-count2-count3;i--)
                System.   out .print(   name [i]+   ":" +   score [i]);
   }
     
}

测试

public   class   ThreeTest {

      public   static   void   main(String[] args) {
               // 取前三名的成绩和名字
           String name[]={   "张三1" , "张三2"   , "张三3"   , "张三4"   , "张三5"   , "张三6"   , "张三7"   , "张三8"   , "张三9"   , "张三10"   ,};
              int   score[]={98,98,97,96,96,56,77,65,22,87};
           Three ts=   new   Three(name.   length );
           ts. setName(name);
           ts.setScore(score);
           ts.paiXu();
           String result=ts.toString();
           System.   out .println(result);   //输出已经过排序的成绩和对应的名字
           ts.sd();
     }
 
}





     /**
      * 二分法查找11
      *
      *  @param  arr
      *            数组
      *  @param  num
      *            要查找的数字
      *  @return  返回位置
      */
       
package   mysort;

import   java.util.Scanner;

public   class   HalfSelect {

      /**
      * 二分法查找
      *
      *   @param   arr
      *            数组
      *   @param   num
      *            要查找的数字
      *   @return   返回位置
      */
      private   static   int   halfLook( int [] arr,   int   num) { // 二分法查找
              int   middle;
              int   start = 0, last = arr.   length   - 1;
              if   (num < arr[start] || num > arr[last])
                   return   -1;
              while   (   true ) {
                middle = (last + start) / 2;   // 求中间位置
                   if   (start > last) {
                        break ;
                }
                   if   (num > arr[middle]) {
                     start = middle + 1;
                }   else   if   (num < arr[middle]) {
                     last = middle - 1;
                }   else
                        return   middle;   // 相等则返回
           }
              return   -1;
     }

      public   static   void   halfShow(   int   arr[]) {
           Scanner input =   new   Scanner(System.   in );
           System.   out .println(   "请输入你要查找的数:"   );
              int   n = input.nextInt();
              int   w = halfLook(arr, n);
              if   (w >= 0)
                System.   out .println((   new   StringBuilder(   "位置:" )).append(w).toString());
              else
                System.   out .println(   "没有该数!"   );
     }
     
}





/**
    * 拷贝文件(把D盘java1中的java文件拷贝到 jad文件夹改成 txt文件后缀名)12
    *  @param  args
    *  @throws  Exception
    */
package   mylove;

import   java.io.*;

public   class   CopyFile
{
     /**
    * 拷贝文件(把D盘java1中的java文件拷贝到 jad文件夹改成 txt文件后缀名)
    *   @param   args
    *   @throws   Exception
    */
      public   static   void   main(String args[])   throws   Exception{
              long   lasting = System. currentTimeMillis();
           File f =   new   File(   "D:\\java1" );
           File md =   new   File(   "D:\\jad" );
              if   (!md.exists())
                md.mkdir();
              if   (f.exists() && f.isDirectory()){
                File file[] = f.listFiles(   new   FilenameFilter() {
                        public   boolean   accept(File dir, String name)
                     {
                              return   name.endsWith(   ".java" );
                     }

                });
                   for   (   int   i = 0; i < file.   length ; i++)
                {
                     BufferedReader bf =   null ;
                     BufferedWriter bw =   null ;
                     bf =   new   BufferedReader(   new   InputStreamReader( new   FileInputStream(file[i])));
                     String fname = file[i].getName().replaceAll( "\\.java$"   ,   ".txt"   );
                     bw =   new   BufferedWriter(   new   OutputStreamWriter( new   FileOutputStream( new   File(md, fname))));
                        char   ch[] =   new   char [1024];
                        for   (   int   len = 0; (len = bf.read(ch)) != -1;)
                     {
                           bw.write(ch, 0, len);
                           bw.newLine();
                           bw.flush();
                     }

                     bf.close();
                     bw.close();
                }

           }   else
           {
                System.   out .println(   "无此文件夹"   );
           }
           System.   out .println(System. currentTimeMillis() - lasting);
     }
}



are you looking for a relativation ship to comple yourself  ?
come on, don't give me that look.
who cares that your think .
why you should do that !


/**
 * 递归某个文件夹下的所有文件13
 *  @author  Administrator
 *
 */
package   mylove;

import   java.io.*;
/**
 * 递归某个文件夹下的所有文件
 *   @author   Administrator
 *
 */
public   class   DiguiFile
{
      public   static   void   main(String args[])
     {
           File my =   new   File(   "E:\\smole" );
            show(my);
     }

      public   static   void   show(File my)
     {
              if   (my !=   null )
                   if   (my.isDirectory())
                {
                     File f[] = my.listFiles();
                        if   (f !=   null )
                     {
                              for   (   int   i = 0; i < f.   length ; i++)
                                 show(f[i]);
                     }
                }   else
                {
                     System.   out println(my);
                }
     }
}


I get pocket for the sunshine .



/**
 * 数123,数3的学生退出,最后剩下的是谁14
 *  @param  args
 */

import   java.util.*;

public   class   TheLastPerson
{
/**
 * 数123,数3的学生退出,最后剩下的是谁
 *   @param   args
 */
      public   static   void   main(String args[])
     {
           System.   out .println(   "数123,数3的学生退出,最后剩下的是谁?"   );
           System.   out .println(   "请输入学生个数:"   );
           Scanner input =   new   Scanner(System.   in );
              int   num = input.nextInt();
           
              //13个人都没报数
              boolean   bl[] =   new   boolean [num];
              for   (   int   i = 0; i < bl.   length ; i++){
                bl[i] =   true ;
           }
           
              int   index = 0;    //剩下的人
              int   lastnum = num;   //剩下的人
              int   countNum = 0;    //报数
           
           
              while   (lastnum > 1)
           {
                   if   (bl[index] && ++countNum == 3)    //如果留下来,且
                {
                     countNum = 0;    //数到3归零从新报数
                     bl[index] =   false ;   //标记那个位置为假的,报过数退出的
                     lastnum--;    //退出一个数量减1
                }
                   if   (++index == num)    //索引报数到最后这个人的 时候就从头报数,索引回到0
                     index = 0;
           }
           
           
           
              for   (   int   i = 0; i < num; i++){
                   if   (bl[i])
                     System.   out .println((   new   StringBuilder(   "留下来的是第"   )).append(i + 1).append( "个同学"   ).toString());
           }
      }
}




//删除重复的单词。15
public   class   removeWord {

      /**
      * 删除字符串中出现的字符
      *   @param   args
      */
      public   static   void   main(String[] args) {
           System.   out .println(   "请输入一串字符"   );
           Scanner input = new   Scanner(System.   in );
           String str=input.nextLine();
           System.   out .println(   "请输入要删除的字符"   );
           String delStr=input.nextLine();
           StringBuffer sb=   new   StringBuffer();
           sb.append(str);
              for (   int   i=0;i<sb.length();i++){
              String s=   "" +sb.charAt(i);
                if (s.trim().equals(delStr)){
                 sb=sb. deleteCharAt(i);    // 删除字符
                 i--;
              }
            
           }
           System.   out .println(   "最后输出结果为:"   +sb);
     }
}





//颠倒字符串数组16
public   class   reverseString {

      /**
      * 旋转字符串  如: I am a student 
      * 结果为: student a am I
      *   @param   arr
      */
      public   static   void   reverse(String arr[])
     {
              int   start = 0;
              for   (   int   end = arr. length   - 1; start < end ; end--)
           {
                String temp = arr[start];
                arr[start] = arr[ end];
                arr[ end] = temp;
                start++;
           }
           System.   out .println(   "\n颠倒后的结果为:"   );
              for   (   int   i = 0; i < arr.   length ; i++)
      System. out .print(( new   StringBuilder(String.valueOf(arr[i]))).append(   " " ).toString());

     }
     
      public   static   void   main(String[] args) {
           System.   out .println(   "请输入一串字符"   );
           Scanner input= new   Scanner(System.   in );
           String str=input.nextLine();
           String arr[]=str.split(   " " );
          reverse(arr);
     }
}




/**
 * 输入一个日期 ,判断是星期几17
 *   @author   小高
 *   @date   2013   - 08   - 24
 *
 */
public   class   date2 {
     public   static   void   main(String[] args) {
        System.   out .println(   "要想知道是星期几?那请输入一个日期:"   );
        Scanner input= new   Scanner(System. in );
        String strDate=input.nextLine();
        String strArray[]=strDate.split(   "-" );
          int   year=Integer.parseInt(strArray[0]);    //年
          int   month=Integer.parseInt(strArray[1]);   //月
          int   day=Integer.parseInt(strArray[2]);    //日
       
         //思路: 1900年1月1日是星期一

          //到现在的总年数天数
          int   sumYearDays=0;
          for ( int   y=1900;y<year;y++){
                if (y%400==0||(y%4==0&&y%100!=0)){   //闰年
                   sumYearDays+=366;
              }   else
                   sumYearDays+=365;
        }

          //当前年份的  月份、日期  的 总天数
          int   monthArr[]={31,28,31,30,31,30,31,31,30,31,30,31};    //12个月的天数
          if (year%400==0||(year%4==0&&year%100!=0)){   //闰年
              monthArr[1]=29;
        }
          //如输入1月3号  或 2月3号   3月3号
          int   sumMonthAndDays=day;
          if (month!=1){
                for (   int   i=0;i<month-1;i++){
                sumMonthAndDays+=monthArr[i];
            }
        } else {
              sumMonthAndDays=day;
        }

          int   sumDays= sumYearDays+sumMonthAndDays;    //总天数
       
          //求星期几 余数
          int   week=sumDays%7;
        String strWeek=   "日一二三四五六"   ;
        System.   out .println(   "你好," +strDate+ "是: 星期"   +strWeek.charAt(week));  
   }
}








      /**
      * 统计同成绩的人数18
      */
public   class   SameSore {
     
                
      /**
      * 统计同成绩的人数
      *
      *   @param   args
      */
      public   static   void   main(String[] args) {

              int   arr[] = { 65, 70, 80, 50, 70, 80 };
           Arrays. sort(arr);   // 升序排列
              int   len = arr.   length   - 1;

           System.   out .println(   "请输入前多少名?"   );
           Scanner input= new   Scanner(System.   in );
           int   num=input.nextInt();
        
              int   count[] =   new   int [num+1];    //由于第1个不取,所以长度比实际的加1 ,存储第多少名的   数据
              int   score[]=   new   int [len+1];     //成绩
              //第几名 多少个同学
           
              for   (   int   k = 1; k <= count.   length -1; k++) {
                   int   hasCount=0;
                   for (   int   j=1;j<=k;j++){
                      hasCount+=count[j];     //已经统计的个数
                }
                   for   (   int   i = len - hasCount; i >= 0; i--) {   //统计第几名重复了几个
                        if   (arr[i] == arr[len - hasCount]) {
                           score[k]=arr[len - hasCount];    //第几名的分数
                           count[k]++;    //第几名的个数
                     }
                }
           }
           
           
              // 结果:
                   for   (   int   i = 1; i <count.   length ; i++) {
                              try {
                           System.   out .println(   "第"   + i +   "名,成绩为" +score[i]+ ":"   + count[i]);
                           }   catch (ArrayIndexOutOfBoundsException e){
                                System.   out .println(   "第" +i+   "名超出范围哦!"   );
                           }
                }
                     
     }
              //推断过程: // 第一名找出后 ,统计和第一名相等的分数有几个




/**
 * 最大公约数算法:给两个数,如果两个数相等,最大公约数是其本身;如果不等,取两个数相减的绝对值和两个数中最小的数比较,
 * 相等则为最大公约,不等则继续上面的算法,直到相等 19
 *   @author   Administrator
 */
public class BigYueShu {

      public   static   void   main(String[] args) {
            yueshu(16,12);
     }
     
      public   static   void   yueshu( int   num1, int   num2){
              if(num1==num2){
                   System. out.println(num2);
              }
              else
              yueshu(Math.abs (num1-num2),Math.min(num1,num2));
     }
}





20

package AC;

import java.util.ArrayList;
import java.util.List;

public class Abc {
       
     public static void main(String[] args) {
             String word="abc";
               Abc one=new Abc();
               List<String> list=new ArrayList<String>();
               one.method1(word, "", list);
               System.out.println(list.toString());
     }
         
     //先删除第0,1,2个 ,有 bc  ac  ab 三种组合方法
     public void  method1(String base,String buff,List<String> result)  {    
         if(base.length()<=0)
               {result.add(buff); }
          for (int i = 0; i < base.length(); i++) {
               method1(new StringBuilder(base).deleteCharAt(i).toString(),buff+base.charAt(i),result);
          }
          //第一次删除a,留下bc, a先存起来,接着把bc删除第一个 , 留下c,ab存起来,接着删除c,留下空。然后 abc存起来,放到集合中。
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值