目录
第一题:判断数组中奇数偶数的个数并求和
第二题:判断三个数中的最大值
第三题:剔除某些数据并打印输出
第四题:输入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); }}