While循環以及do-while循環_練習


1 定義一個數,判斷是否為回文數。回文數即 一個五位數,它的第一位與最后一位相等 ,第二位與倒數第二位相等。12321

public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("請輸入一個數字");
        int number = scan.nextInt();//123321
        int wei=1;
        while(number/(int)Math.pow(10,wei)!=0){
            wei++;
        }
        boolean c = true;
        for(int i=0;i<wei/2;i++){
            int num1 = number/(int)Math.pow(10,wei-1-i)%10;
            int num2 = number/(int)Math.pow(10,i)%10;

            if(num1!=num2){
                c=false;
                break;
            }
        }
        if(c){
            System.out.println("回文數");
        }else{
            System.out.println("不是回文數");
        }
    }

2 以下程序的運行結果是

public static void main(String[] args) {
        int i,n;
        for(i=1;i<=100;i++)
        {
            n=i;
            if(++n%2==0)
                if(++n%3==0)
                    if(++n%11==0)
                        System.out.printf("%d\n",n);
        }
    }
    
    22
    88

3 定義一個正整數如:1205 統計它的各位數字中零的個數,並求各位數字中的最大者。

public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("請輸入一個數字");
        int number = scan.nextInt();
        int wei=1;
        while(number/(int)Math.pow(10,wei)!=0){
            wei++;
        }
        int sum=0;
        int max = number%10;
        for(int i=0;i<wei;i++){
            int num = number/(int)Math.pow(10,i)%10;
            if(num==0){
                sum++;
            }
            if(num>max){
                max=num;
            }
        }
        System.out.println("零的個數是:"+sum);
        System.out.println("每一位中最大值是:"+max);
    }

4 有1020個西瓜,第一天賣掉總數的一半后又多賣出兩個,以后每天賣剩下的一半多兩個,問幾天以后能賣完

public static void main(String[] args) {
        int sum=1020;
        int day=0;
        while(sum>0){
            sum=sum/2-2;
            day++;
        }
        System.out.println("一共賣了:"+day+"天");
    }

5猴子吃桃問題: 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個,第二天早上又將剩下的桃子吃了一半,又多吃一個,以后每天都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子。求第一天共摘了多少個?

X=(1+1)*2
X=(x+1)*2;
public static void main(String[] args) {
        int sum=1;
        int day=9;
        while(day>0){
            sum=(sum+1)*2;
            day--;
        }
        System.out.println("猴子一共摘了:"+sum+"個桃子");
    }

6用while做 求10到20的累加和

public static void main(String[] args) {
        int sum=0;
        int number = 10;
        while(number<=20){
            sum+=number;
            number++;
        }
        System.out.println("sum:"+sum);
    }

7用while做 求1000元錢可以買到38元的鋼筆多少只?

public static void main(String[] args) {
        //第一種算法
        int sum=0;

        while(1000-sum*38>=38){
            sum++;
        }

        //第二種算法
        /*int sum=0;
        int money=1000;
        while(money>=38){
            money-=38;
            sum++;
        }*/
        System.out.println(sum);
    }

8用while做 雞兔同籠。雞兔一共有50只,腳一共有160只,問雞和兔各多少只?要求雞兔至少一樣一只。

public static void main(String[] args) {
        int ji=1;

        while(ji<=49){
            int tu=1;
            while(tu<=49){
                if(ji+tu==50&&ji*2+tu*4==160){
                    System.out.println("雞 :"+ji+",兔子:"+tu);
                }
                tu++;
            }
            ji++;
        }
    }

9用while和while的嵌套,做 輸出一個直角三角形的圖案。

            *
    		**
			***
			****
			*****
			******
			*******
			********
			*********
public static void main(String[] args) {
        int hang=1;
        while(hang<=9){
            int lie = 1;
            while(lie<=hang){
                System.out.print("*");
                lie++;
            }
            hang++;
            System.out.println();
        }
    }

10用while和while的嵌套,做 輸出九九乘法表。

public static void main(String[] args) {
        int hang=1;
        while(hang<=9){
            int lie = 1;
            while(lie<=hang){
                System.out.print(hang+"*"+lie+"="+(hang*lie)+" ");
                lie++;
            }
            hang++;
            System.out.println();
        }
    }

11計算1+4+7+...+301,寫出算法的程序.

public static void main(String[] args) {
        //第一種做法
        int number=1;
        int sum=0;
        while(number<=301){
            sum+=number;
            number+=3;
        }
        System.out.println(sum);
        //第二種做法
        int num=0;
        for(int i=1;i<=301;i+=3){
            num+=i;
        }
    }

12、計算50以內的偶數之積,寫出算法的程序.

public static void main(String[] args) {
        //第一種算法
        int number=1;
        int sum=1;
        while(number<=20){
            if(number%2==0){
                sum*=number;
            }
            number++;
        }
        //第二種算法
        int number=2;
        int sum=1;
        while(number<=20){
            sum*=number;
            number+=2;
        }
    }

13、計算2/1+3/2+4/3+…+(n+1)/n,寫出算法的程序.

public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("請輸入要計算到的位數:");
        int n = scan.nextInt();
        int num=1;
        int sum=0;
        while(num<=n){
            sum+=(num+1)/num;
            num++;
        }
        System.out.println(sum);
    }

14、2000年我國人口為13億,如果人口每年的自然增長率為7%,那么多少年 后我國人口將達到15億?設計一個算法的程序

public static void main(String[] args) {
        double sum=13.0;//(單位:億);
        int year=0;
        while(sum<15){
            sum=sum+sum*0.07;
            year++;
        }
        System.out.println(year);
    }

15、給出50個數,1,2,4,7,11,„,其規律是:第1個數是1,第2個數比第1個數大1,第3個數比第2個數大2,第4個數比第3個數大3,„,以此類推. 要求計算這50個數的和. 先將下面給出的程序框圖,再根據程序框圖寫出程序.

public static void main(String[] args) {
        int i=1;
        int number=1;//11
        int num=1;//5
        int sum=0;
        while(i<=50){
            sum+=number;//0+1+2+4+7+11
            number+=num;//
            num++;//
            i++;
        }
        System.out.println(sum);
    }


免責聲明!

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



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