目录

第一题:判断数组中奇数偶数的个数并求和

第二题:判断三个数中的最大值

第三题:剔除某些数据并打印输出

第四题:输入0到7判断星期几

第五题:将一个数组倒序输出

第六题:输入一个数判断是否是素数

第七题:判断一定范围内的素数,并按照每行八个打印输出

第八题:求绝对值

第九题:求自然数的个位数之和

第十题:求在指定范围内的完数并打印输出

第十一题:求一个数的阶乘

第十二题:税后工资问题

第十三题:肥胖指数问题

第十四题:银行业务输入计算

第十五题:打印金字塔

第十六题:逻辑判断问题

第十七题:遍历二维数组

第十八题:如何获取邮箱中的姓名问题

第十九题:随机数问题

第二十题:求最小公倍数最大公约数问题

第二十一题:最优选择问题

第二十二题:三元运算问题

第二十三题:拼接打印问题

第二十四题:水仙数问题

第二十五题:加减乘除运算问题

第二十六题:顺序数组打乱输出问题

第二十七题:斐波那契数列问题

第二十八题:猴子摘桃问题

第二十九题:手机选号优惠问题

第三十题:将字符串中的小写字母转化成大写字母问题


第一题:判断数组中奇数偶数的个数并求和

package pratice;public class 求和 {    public static void main(String[] args) {        int arr[]=new int[]{1,2,3,92,45,67,68,57};        int sum=0;        int sums=0;        int m=0;        int n=0;        for(int i=0;i

第二题:判断三个数中的最大值

package pratice;import java.util.Scanner;/*接收用户输入的3个整数,并将它们的最大值作为结果输出 */public class 找最大数 {    public static void main(String[] args) {int a = 0;        Scanner scanner=new Scanner(System.in);        System.out.println("请输入三个整数");        int x =scanner.nextInt();        int y=scanner.nextInt();        int z=scanner.nextInt();        if(x>=y){            a=x;        }else{            a=y;        }        if(a>=z){            System.out.println("三个数的最大值为"+a);        }else {            System.out.println("三个数中的最大值为"+z);        }    }}

第三题:剔除某些数据并打印输出

package pratice;/*练习题:打印100以内除了尾数为3,5,7的所有数 */public class 剔除数据打印输出 {    public static void main(String[] args) {        for(int i=1;i<=100;i++){              int x=i%10;            //System.out.println(x);            if(x==3||x==5||x==7 ) {                continue;            }            System.out.println(i);        }    }}

第四题:输入0到7判断星期几

package pratice;import java.util.Scanner;//输入数字1~7,输出对应星期几public class 判断星期几 {    public static void main(String[] args) {        Scanner scanner=new Scanner(System.in);        System.out.println("请输入星期几");        int x=scanner.nextInt();        switch (x){            case 1:                System.out.println("今天是星期一");                break;            case 2:                System.out.println("今天是星期二");                break;            case 3:                System.out.println("今天是星期三");                break;            case 4:                System.out.println("今天是星期四");                break;            case 5:                System.out.println("今天是星期五");                break;            case 6:                System.out.println("今天是星期六");                break;            case 7:                System.out.println("今天是星期日");                break;        }    }}

第五题:将一个数组倒序输出

package pratice;public class 倒叙输出数组 {    public static void main(String[] args) {        int arr[]={1,2,3,4,5,6,7,8};        for (int i=arr.length-1;i>=0;i--){            System.out.print(arr[i]+" ");        }    }}

第六题:输入一个数判断是否是素数

package pratice;import java.util.Scanner;public class 判断素数 {    public static void main(String[] args) {        Scanner scan = new Scanner(System.in);        System.out.println("请输入一个数");        int n = scan.nextInt();        int i;        for (i = 2; i <n; i++) {            if (n % i == 0) {                System.out.println(n + "不是素数");                break;            }        }            if (n == i) {                System.out.print(n + "是素数");            }        }    }

第七题:判断一定范围内的素数,并按照每行八个打印输出

package pratice;public class 求素数 {    public static void main(String[] args) {        int n=0;        int sum=0;        for (int i=2;i<200;i++){            boolean flag=true;            for(int j=2;j<i-1;j++){                if(i%j==0){                    flag=false;                    break;                }                }            if(flag){                System.out.print(i+" ");                n++;                if(n%8==0){                    System.out.print("\n");                }                   sum+=i;            }        }        System.out.println("\n");        System.out.println("这些数中共有"+n+"个素数"+"和为"+sum);}}

第八题:求绝对值

package pratice;import java.util.Scanner;/*绝对值是指一个数在数轴上所对应点到原点的距离,用“| |”来表示。负数的绝对值是他去掉负号以后的值,而非负数(0和正数)的绝对值是他本身。请定义一个方法,接收用户输入的数字,输出绝对值结果。 */public class 求绝对值 {    public static void main(String[] args) {        Scanner scanner=new Scanner(System.in);        System.out.println("请输入一个数");        double x=scanner.nextDouble();        double result=Subs(x);        System.out.println(x+"的绝对值为"+result);    }    public static double Subs(double x){        if(x>=0){            return x;        }else            return -x;    }}

第九题:求自然数的个位数之和

package pratice;import java.util.Scanner;/*练习题:求任意自然数各位数之和接收用户输入的任意自然数,累计所有位数数字之和需求:接收用户输入的行数, */public class 求自然数的个位数之和 {    public static void main(String[] args) {        Scanner scanner=new Scanner(System.in);        System.out.println("请任意输入一个自然数");        int a=scanner.nextInt();        int sum=0;        while (a!=0){            int x=a%10;            sum=sum+x;            a=a/10;        }        System.out.println(sum);    }}

第十题:求在指定范围内的完数并打印输出

package pratice;/*练习题:求1000以内的完数完数:如果一个数等于其所有因子之和,我们就称这个数为"完数",比如6的因子为1,2,3 6 = 1 + 2 + 3,那么6就是一个完数 */public class 求范围内的完数 {    public static void main(String[] args) {      for (int i=1;i<=1000;i++){          int sum=0;         for (int j=1;j<=i/2;j++){             if(i%j==0){                 sum=sum+j;             }         }         if(sum==i){             System.out.println(i);         }      }    }}

第十一题:求一个数的阶乘

package pratice;import java.util.Scanner;/*练习题:求数字阶乘(for循环版)需求:接收用户输入的数字,计算该数字的阶乘结果已知:负数不可以有阶乘,0的阶乘结果是1,5 ! = 5 x 4 x 3 x 2 x 1 */public class 求数字的阶乘 {    public static void main(String[] args) {        Scanner scanner=new Scanner(System.in);        System.out.println("请输入一个数");        int x=scanner.nextInt();        int sum=1;        int groupsum=0;        for(int i=1;i<=x;i++){            //sum=sum*x;            sum=sum*i;            //groupsum=groupsum+sum;        }        System.out.println("前"+x+"项的阶乘为"+sum);        groupsum=groupsum+sum;        System.out.println("阶乘的前"+x+"项和为"+groupsum);    }}

第十二题:税后工资问题

package pratice;import java.util.Scanner;/*2019年1月1日起,国家推出新的个人所得税政策,起征点上调值5000元。也就是说税前工资扣除三险一金(三险一金数额假设是税前工资的10%)后如果不足5000元,则不交税。如果大于5000元,那么大于5000元的部分按梯度交税,具体梯度比例如下:0 ~ 3000元的部分,交税3%3000 ~ 12000元的部分,交税10%12000 ~ 25000的部分 , 交税20%25000 ~ 35000的部分,交税25%35000 ~ 55000的部分,交税30%55000 ~ 80000的部分,交税35%超过80000的部分,交税45%比如:小蓝入职一家企业后,税前工资是18000,则他每月该交个税的部分是18000-1800-5000=11200元,个税缴纳数额是3000×3%+8200×10%=910元。税后工资15290元。请完成一个个税计算程序,在用户输入税前工资后,计算出他对应的纳税数额,以及税后工资为多少? */public class 求税后工资问题 {    public static void main(String[] args) {        Scanner scanner=new Scanner(System.in);        System.out.println("请输入你的工资");        double m=scanner.nextDouble();        double x=0;//x表示需要交的税        double y=0;//实际所发工资        double n=m-m*0.1-5000;//需要交税的工资        if(n3000&&n12000&&n25000&&n35000&&n55000&&n80000){            x=3000*0.03+9000*0.1+13000*0.2+10000*0.25+20000*0.3+25000*0.35+(n-80000)*0.45;            y=m-x-m*0.1;            System.out.println("工资需要交税"+x+"实际发的工资为"+y);        }    }}

第十三题:肥胖指数问题

package pratice;import java.util.Scanner;/*BMI 指数测试 BMI = 体重 (kg) / 身高² (m)接收用户输入的身高和体重,将判断结果输出        过轻:低于18.5        正常:18.5 ~ 22.9        偏胖:23 ~ 24.9        肥胖:25 ~ 29.9        重度肥胖:高于30        极度肥胖:高于40*/public class 肥胖指数判断 {    public static void main(String[] args) {        Scanner scanner=new Scanner(System.in);        System.out.println("请输入你的身高");        double high=scanner.nextDouble();        System.out.println("请输入你的体重");        double weight=scanner.nextDouble();        double BMI=weight/(high*high);        if(BMI=18.5 & BMI=23 & BMI=25 & BMI=30 & BMI40){            System.out.println("极度肥胖");        }    }}

第十四题:银行业务输入计算

package pratice;import java.util.Scanner;/*某银行推出了整存整取定期储蓄业务,其存期分为一年、两年、三年、五年,到期凭存单支取本息。存款年利率表如下:存期 年利率(%)一年 2.25两年 2.7三年 3.25五年 3.6请存入一定金额(1000起存),存一定年限(四选一),计算到期后得到的本息总额。提示:存入金额和存入年限均由键盘录入本息计算方式:本金+本金×年利率×年限 */public class 银行收入计算 {    public static void main(String[] args) {        Scanner scanner=new Scanner(System.in);        System.out.println("请输入你要存入的金额");        double m=scanner.nextDouble();        System.out.println("请输入你要存入的年限");        int n=scanner.nextInt();        if(m<1000){            System.out.println("对不起,我们银行最低存款1000元");        }else {            switch (n){                case 1:{                    m=m+m*0.025*1;                    System.out.println(m);                    break;                }                case 2:{                    m=m+m*0.027*2;                    System.out.println(m);                    break;                }                case 3:{                    m=m+m*0.035*3;                    System.out.println(m);                    break;                }                case 5:{                    m=m+m*0.036*5;                    System.out.println(m);                    break;                }            }        }    }}

第十五题:打印金字塔

package pratice;public class 金字塔 {    public static void main(String[] args) {        int n = 5;        System.out.println("半金字塔");        for (int i = 0; i < n; i++) {            for (int j = 0; j <= i; j++) {                System.out.print("*");            }            System.out.println("");        }        System.out.println("----------");        System.out.println("全金字塔");        for (int i = 0; i < n; i++) {            for (int j = 0; j <= n - i; j++) {                System.out.print(" ");            }            for (int k = 0; k <= i; k++) {                System.out.print("* ");            }            System.out.println("");        }    }}

第十六题:逻辑判断问题

package pratice;/*已知小红同学有25元,她攒了几天钱之后发现自己的现在的钱比原来的2倍还多出10块。而小蓝同学有30元, 他攒了几天钱之后发现自己的钱正好是原来的2倍。于是小胖说:小红和小蓝现在的钱一样多,请问,他说的对吗?*/public class 逻辑判断问题 {    public static void main(String[] args) {        int a=25;        int b=30;                a=a*2+10;                b=b*2;        System.out.println(a==b);    }}

第十七题:遍历二维数组

package pratice;public class 遍历二维数组 {    public static void main(String[] args) {        char[][]a= {{'好','好','学','习',},                {'天','天','向','上'}        };        for (int i=0;i=0;j--){                System.out.print(a[j][i]);            }        }        System.out.println();    }}

第十八题:如何获取邮箱中的姓名问题

package pratice;import java.util.Scanner;/*练习题: 获取邮箱名字接收用户输入的邮箱名,获取邮箱的名字比如:cxy@163.com,输出cxy */public class 获取邮箱中的姓名 {    public static void main(String[] args) {        Scanner scanner=new Scanner(System.in);        System.out.println("请输入你的邮箱");        String str=scanner.nextLine();        String n=getName(str);        System.out.println(n);    }     static String getName(String str){        int index=str.indexOf("@");        if(index==-1){            System.out.println("你输入的邮箱错误,请重新输入邮箱");         }        return str.substring(0,index);    }}

第十九题:随机数问题

package pratice;/*练习题:多次生成随机数,并打印第一次出现大于0.999 时的次数与生成的随机数 */public class 生成随机数并求和 {    public static void main(String[] args) {        for (int i=1; ;i++){            double x=Math.random();            if(x>0.999){                System.out.println("第"+i+"次,生成的随机数"+x);                break;            }        }    }}

第二十题:求最小公倍数最大公约数问题

package pratice;import java.util.Scanner;//求两个数的最大公约数,最小公倍数public class 最大公约数最小公倍数 {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        System.out.println("请输入两个整数");        int a = scanner.nextInt();        int b = scanner.nextInt();        int c=Yue(a,b);        System.out.println("最大公约数为"+c);        long d=Bei(a,b);        System.out.println("最小公倍数为"+d);    }//求最大公约数的函数    public static int Yue(int a, int b) {        int min = a 

第二十七题:斐波那契数列问题

用循环实现

package 算法设计与分析;import java.util.Scanner;public class 斐波那契数列问题 {  public static void main(String[] args) {    Scanner scanner=new Scanner(System.in);    System.out.println("请输入一共有n个数");    int n=scanner.nextInt();    int num1=0;    int num2=1;    int numn=1;    int sum=1;    for(int i=3;i<=n;i++){      numn=num1+num2;      num1=num2;      num2=numn;      sum+=numn;    }    System.out.println("第n个数为"+numn);    System.out.println("前n项和为"+sum);  }}

用递归来实现

package 算法设计与分析;import java.util.Scanner;public class 斐波那契数列2 {  public static void main(String[] args) {    Scanner scanner=new Scanner(System.in);    System.out.println("请输入一共有n个数");    int n=scanner.nextInt();    int A=Recursion(n);    System.out.println("第"+n+"项A为"+A);    int sum=0;    for (int i=1;i<=n;i++){      sum+=Recursion(i);    }   System.out.println("前n项和为"+sum);  }    public static int Recursion(int n){      if(n==1){        return 0;      }      if(n==2){        return 1;      }      return Recursion(n-1)+Recursion(n-2);    }}

第二十八题:猴子摘桃问题

package 算法设计与分析;/*一个人摘了一些桃子,第一天卖掉了一半,又吃了一个,第二天卖掉了一半,又吃了一个,以后天天都是如此处理,到第n天发现桃子只剩下一个桃子,n是参数,返回值是一共摘的桃子数。*/import java.util.Scanner;public class 卖桃 {  //最后一天是2,倒数第二天应为4,倒数第三天应为10,总结应满足公式number=(number+1)*2    public static void main(String[] args) {      Scanner input=new Scanner(System.in);      System.out.println("请输入天数");      int n= input.nextInt();      int number=1;      for(int i=2;i<=n;i++)      {        number=(number+1)*2;        //从最后一天往前推,假设猴子上一天没吃那个多的桃子,        //那么前一天的桃子数量就应该是今天的2倍。      }      System.out.println("猴子第一天摘了"+number+"桃子");    }  }

第二十九题:手机选号优惠问题

package pratice;import java.util.Scanner;/*练习题: 手机选号:根据用户输入的手机号来确认用户实际支付的价格如果尾数为8,需支付办卡费50元如果尾数为4,需支付办卡费用0元如果是其他尾号,需支付办卡费用20元 */public class 手机选号问题 {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        System.out.println("请输入你的手机号码");        String str = scanner.nextLine();        tel(str);        if (str.length() != 11) {            System.out.println("你输入的号码有错,请从新输入一个11位数的号码");            return;        }    }    public static void tel(String str){            if(str.charAt(10)=='8'){                int price=50;                System.out.println("需要支付办卡费用为"+price+"元");            } if(str.charAt(10)=='4'){                System.out.println("不需要支付办卡费用");            }if(str.charAt(10)!='8'&&str.charAt(10)!='4'){                int price=20;                System.out.println("需要支付办卡费用"+price+"元");            }        }    }

第三十题:将字符串中的小写字母转化成大写字母问题

package pratice;public class 字母大小写转换 {    public static void main(String[] args) {        String  str1="";         String str="abDefGFcd";        System.out.println("转换前的序列"+str);        for (int i=0;i='a'&&ch<='z'){                ch=(char)((int)ch-32);            }            System.out.println("转换后"+ch);            str1+=ch;        }        System.out.println("转换后的序列:"+str1);    }}