zoukankan      html  css  js  c++  java
  • 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);
            }
        }
        
        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);
        }
    
  • 相关阅读:
    effective c++ 笔记 (30-31)
    设计模式 笔记 装饰模式 Decorator
    设计模式 笔记 组合模式 Composite
    设计模式 笔记 外观模式 Facade
    effective c++ 笔记 (26-29)
    设计模式 笔记 桥接模式 Bridge
    设计模式 笔记 适配器模式 Adapter
    算法导论 第二章作业
    设计模式 创建型模式实践
    设计模式 笔记 单例模式 Singleton
  • 原文地址:https://www.cnblogs.com/SunMoonSky/p/12427130.html
Copyright © 2011-2022 走看看