java for循環和數組--冒泡排序、二分查找法


//100以內與7相關的數

   for(int a=1;a<=100;a++){
    if(a%7==0||a%10==7||a/10==7){
     System.out.print(a+"\t");
    }
   }

//百雞百錢
   
   for(int a=0;a<=50;a++){
    for(int b=0;b<=100;b++){
     for(int c=0;c<=200;c++){
      if(2*a+b+0.5*c==100){
       System.out.println("公雞買"+a+"只,母雞買"+b+"只,小雞買"+c+"只");
      }
     }
    }
   }

//100塊錢去買洗發水(15),牙刷(5),香皂(2),100快全花完,共有多少種買法
   
   for(int a=0;a<=7;a++){
    for(int b=0;b<=20;b++){
     for(int c=0;c<=50;c++){
      if(15*a+5*b+2*c==100){
       System.out.println("洗發水買"+a+"支,牙刷買"+b+"支,香皂買"+c+"塊");
      }
     }
    }
   }

//組合硬幣
   
   for(int a=0;a<=10000;a++){
    for(int b=0;b<=1000;b++){
     for(int c=0;c<=1000;c++){
      if(a+2*b+5*c==100){
       System.out.println(a+"個一分錢"+b+"個2分錢"+c+"個5分錢");
      }
     }
    }
   }

//123()45()67()8()9=100  ()中填寫+,-   將+看作1*,-看作-1*
   
   for(int a=-1;a<=1;a+=2){
    for(int b=-1;b<=1;b+=2){
     for(int c=-1;c<=1;c+=2){
      for(int d=-1;d<=1;d+=2){
       if(123+a*45+b*67+c*8+d*9==100){
        System.out.println("a="+a+",b="+b+",c="+c+",d="+d);
       }
      }
     }
    }
   }

/*某偵察隊接到一項緊急任務,要求在A、B、C、D、E、F六個隊員中盡可能多地挑若干人,但有以下限制條件:
   l A和B兩人中至少去一人;
   l A和D不能一起去;
   l A、E和F三人中要派兩人去;
   l B和C都去或都不去;
   l C和D兩人中去一個;
   l 若D不去,則E也不去。
   問應當讓哪幾個人去?*/
   
   for(int a=0;a<=1;a++){
    for(int b=0;b<=1;b++){
     for(int c=0;c<=1;c++){
      for(int d=0;d<=1;d++){
       for(int e=0;e<=1;e++){
        for(int f=0;f<=1;f++){
         if(a+b>=1&&a+d!=2&&a+e+f==2&&(b+c==0||b+c==2)&&c+d==1&&(d+e==0||d==1)){
          System.out.println("a="+a+",b="+b+",c="+c+",d="+d+",e="+e+",f="+f);
         }
        }
       }
      }
     }
    }
   }

//冒泡排序

int[] a=new int[]{21,32,23,42,52,22};
   for(int i=1;i<a.length;i++){
    for(int j=1;j<=a.length-i;j++){
     if(a[j]<a[j-1]){
      int zhong=a[j-1];
      a[j-1]=a[j];
      a[j]=zhong;
     }
    } 
   }
   for(int x=0;x<a.length;x++){
    System.out.print(a[x]+"\t");
   }

//二分查找法  三個下標 一個循環 取中間 移下標

Scanner sc=new Scanner(System.in); 
   int zhao=sc.nextInt();
   boolean biaozhi=false;
   int wz=-1;
   int[] a=new int[]{3,7,9,13,14,18,21,25,33,45};
   int kt=0,jw=9,zj;
   while(kt<=jw){
    zj=(kt+jw)/2;
    if(a[zj]==zhao){    
     biaozhi=true;
     wz=zj;
     break;
    }
    else{
     if(a[zj]<zhao){
      kt=zj+1;
     }
     else
     {
      jw=zj-1;
     }
    }
   }
   if(biaozhi==true){
    System.out.println("找到了"+"在第"+wz+"個");
   }
   else
   {
    System.out.println("沒找到");
   }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM