网络知识 娱乐 Java中常见的30道例题(附代码)

Java中常见的30道例题(附代码)

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

package pratice;npublic class 求和 {n public static void main(String[] args) {n int arr[]=new int[]{1,2,3,92,45,67,68,57};n int sum=0;n int sums=0;n int m=0;n int n=0;n for(int i=0;i<arr.length;i++) {n if (arr[i] % 2 == 0) {n sum += arr[i];n n++;n } else{n sums+=arr[i];n m++;n }n }n System.out.println("奇数个为数"+m+",奇数和"+sums);n System.out.println("偶数个为数"+n+",偶数和"+sum);n }n}n

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

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

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

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

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

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

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

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

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

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

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

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

第八题:求绝对值

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

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

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

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

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

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

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

第十二题:税后工资问题

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

第十三题:肥胖指数问题

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

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

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

第十五题:打印金字塔

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

第十六题:逻辑判断问题

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

第十七题:遍历二维数组

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

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

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

第十九题:随机数问题

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

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

package pratice;n nimport java.util.Scanner;n//求两个数的最大公约数,最小公倍数npublic class 最大公约数最小公倍数 {n public static void main(String[] args) {n Scanner scanner = new Scanner(System.in);n System.out.println("请输入两个整数");n int a = scanner.nextInt();n int b = scanner.nextInt();n int c=Yue(a,b);n System.out.println("最大公约数为"+c);n long d=Bei(a,b);n System.out.println("最小公倍数为"+d);n }n//求最大公约数的函数n public static int Yue(int a, int b) {n int min = a < b ? a : b;n for (int i = min; i >= 1; i--) {n //i能把a和b同时整除n if (a % i == 0 && b % i == 0) {n return i;n }n }n return 0;n }n //求最小公倍数的函数n public static long Bei(long a,long b) {n long max = a < b ? a : b;n for (long i = max; ;i += max) {n if (i % b == 0 && i % a == 0){n return i;n }n }n }n}n

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

package pratice;n/*n小蓝同学想买一个价值8888元的新手机,她的旧手机在二手市场能卖1880元,而手机专卖店推出以旧换新的优惠n,把她的旧手机交给店家,新手机就能够打7.5折优惠。为了更省钱,小蓝要不要以旧换新?n */npublic class 最优选择问题2 {n public static void main(String[] args) {n double a=8888-1880;n double b=8888*0.75;n if(a>b){n System.out.println("以旧换新"+",新买手机价格"+b);n }else {n System.out.println("不依旧换新,新买手机价格为"+a);n }n }n}n

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

package pratice;n/*n某小伙想定一份外卖,商家的优惠方式如下:鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。订单满30元8折优惠。鱼香肉丝优惠价16元,n但是优惠价和折扣不能同时使用。那么这个小伙要点这三样东西,最少要花多少钱?n */npublic class 最优选择问题 {n public static void main(String[] args) {n int a=24,b=8,c=3;n double money1=24+8+3;n money1=(money1>=30?money1*0.8:money1);n double money2=16+8+3;n double money=(money1>=money2?money2:money1);n System.out.println(money);n }n}n

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

package pratice;n npublic class 拼接打印 {n public static void main(String[] args) {n String name="倪静";n int year=20;n double high=165.25;n System.out.println("姓名:"+name+",年龄"+year+",身高"+high);n }n}n

第二十四题:水仙数问题

package pratice;nimport java.util.Scanner;n n/*n练习题:打印水仙花数n水仙花数:是指一个三位数,其各位数字立方和等于该数字本身n例如:153就是一个水仙花数,因为153 = 1³ + 5³ + 3³n */npublic class 水仙花数问题 {n public static void main(String[] args) {n Scanner scanner = new Scanner(System.in);n System.out.println("请输入一个数");n int n=scanner.nextInt();n int sum=0;n while (n!=0){n int x=n%10;n n=n/10;n sum=sum+x*x*x;n n }n System.out.println(sum);n n }n }n

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

package pratice;npublic class 加减乘除运算 {n public static void main(String[] args) {n add(3,4);n sub(2,4);n add(3.2,5.4);n }n public static void add(int a,int b){n int sum;n sum=a+b;n System.out.println(sum);n }n public static void sub(int a,int b){n int sum;n if(a>b){n sum=a-b;n }else {n sum=b-a;n }n System.out.println(sum);n }n public static void add(double a,double b){n double sum;n sum=a*b;n System.out.println(sum);n }n}n

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

package pratice;n nimport java.util.Arrays;nimport java.util.Random;n n/*n练习题:生成一个顺序数组,将这个数组的元素打乱顺序后输出n */npublic class shuffleArray {n public static void main(String[] args) {n int[]a=f();n for (int i=0;i<a.length;i++){n System.out.print(a[i]+" ");n }n System.out.println("n");n shuffle(a);n System.out.println(Arrays.toString(a));n }n public static int[] f(){n int[]a=new int[6];n for (int i=0;i< a.length;i++){n a[i]=i+1;n }n return a;n }n public static void shuffle(int[] a){n for (int i=0;i<a.length;i++){n int j=new Random().nextInt(a.length);n int t=a[i];n a[i]=a[j];n a[j]=t;n n }n }n}n

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

用循环实现nnpackage 算法设计与分析;nimport java.util.Scanner;npublic class 斐波那契数列问题 {n public static void main(String[] args) {n Scanner scanner=new Scanner(System.in);n System.out.println("请输入一共有n个数");n int n=scanner.nextInt();n int num1=0;n int num2=1;n int numn=1;n int sum=1;n for(int i=3;i<=n;i++){n numn=num1+num2;n num1=num2;n num2=numn;n sum+=numn;n }n System.out.println("第n个数为"+numn);n System.out.println("前n项和为"+sum);n }n}n用递归来实现nnpackage 算法设计与分析;n nimport java.util.Scanner;n npublic class 斐波那契数列2 {n public static void main(String[] args) {n Scanner scanner=new Scanner(System.in);n System.out.println("请输入一共有n个数");n int n=scanner.nextInt();n int A=Recursion(n);n System.out.println("第"+n+"项A为"+A);n int sum=0;n for (int i=1;i<=n;i++){n sum+=Recursion(i);n }n System.out.println("前n项和为"+sum);n }n public static int Recursion(int n){n n if(n==1){n return 0;n }n n if(n==2){n return 1;n }n return Recursion(n-1)+Recursion(n-2);n }n}n

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

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

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

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

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

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