目录
第一题:判断数组中奇数偶数的个数并求和
第二题:判断三个数中的最大值
第三题:剔除某些数据并打印输出
第四题:输入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<arr.length;i++) {
if (arr[i] % 2 == 0) {
sum += arr[i];
n++;
} else{
sums+=arr[i];
m++;
}
}
System.out.println("奇数个为数"+m+",奇数和"+sums);
System.out.println("偶数个为数"+n+",偶数和"+sum);
}
}
第二题:判断三个数中的最大值
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(n<=3000){
x=n*0.03;
y=m-x-m*0.1;
System.out.println("工资需要交税"+x+"实际发的工资为"+y);
}if(n>3000&&n<=12000){
x=3000*0.03+(n-3000)*0.1;
y=m-x-m*0.1;
System.out.println("工资需要交税"+x+"实际发的工资为"+y);
}
if(n>12000&&n<=25000){
x=3000*0.03+9000*0.1+(n-12000)*0.2;
y=m-x-m*0.1;
System.out.println("工资需要交税"+x+"实际发的工资为"+y);
}if(n>25000&&n<=35000){
x=3000*0.03+9000*0.1+13000*0.2+(n-25000)*0.25;
y=m-x-m*0.1;
System.out.println("工资需要交税"+x+"实际发的工资为"+y);
}if(n>35000&&n<=55000){
x=3000*0.03+9000*0.1+13000*0.2+10000*0.25+(n-35000)*0.3;
y=m-x-m*0.1;
System.out.println("工资需要交税"+x+"实际发的工资为"+y);
}if(n>55000&&n<=80000){
x=3000*0.03+9000*0.1+13000*0.2+10000*0.25+20000*0.3+(n-55000)*0.35;
y=m-x-m*0.1;
System.out.println("工资需要交税"+x+"实际发的工资为"+y);
}if(n>80000){
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){
System.out.println("过轻");
}if(BMI>=18.5 & BMI<=22.9){
System.out.println("正常");
}if(BMI>=23 & BMI<=24.9){
System.out.println("偏胖");
}if(BMI>=25 & BMI<=29.9){
System.out.println("肥胖");
}if(BMI>=30 & BMI<=40){
System.out.println("重度肥胖");
}if(BMI>40){
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<a[0].length;i++){
for (int j=a.length-1;j>=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 < b ? a : b;
for (int i = min; i >= 1; i--) {
//i能把a和b同时整除
if (a % i == 0 && b % i == 0) {
return i;
}
}
return 0;
}
//求最小公倍数的函数
public static long Bei(long a,long b) {
long max = a < b ? a : b;
for (long i = max; ;i += max) {
if (i % b == 0 && i % a == 0){
return i;
}
}
}
}
第二十一题:最优选择问题
package pratice;
/*
小蓝同学想买一个价值8888元的新手机,她的旧手机在二手市场能卖1880元,而手机专卖店推出以旧换新的优惠
,把她的旧手机交给店家,新手机就能够打7.5折优惠。为了更省钱,小蓝要不要以旧换新?
*/
public class 最优选择问题2 {
public static void main(String[] args) {
double a=8888-1880;
double b=8888*0.75;
if(a>b){
System.out.println("以旧换新"+",新买手机价格"+b);
}else {
System.out.println("不依旧换新,新买手机价格为"+a);
}
}
}
第二十二题:三元运算问题
package pratice;
/*
某小伙想定一份外卖,商家的优惠方式如下:鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。订单满30元8折优惠。鱼香肉丝优惠价16元,
但是优惠价和折扣不能同时使用。那么这个小伙要点这三样东西,最少要花多少钱?
*/
public class 最优选择问题 {
public static void main(String[] args) {
int a=24,b=8,c=3;
double money1=24+8+3;
money1=(money1>=30?money1*0.8:money1);
double money2=16+8+3;
double money=(money1>=money2?money2:money1);
System.out.println(money);
}
}
第二十三题:拼接打印问题
package pratice;
public class 拼接打印 {
public static void main(String[] args) {
String name="倪静";
int year=20;
double high=165.25;
System.out.println("姓名:"+name+",年龄"+year+",身高"+high);
}
}
第二十四题:水仙数问题
package pratice;
import java.util.Scanner;
/*
练习题:打印水仙花数
水仙花数:是指一个三位数,其各位数字立方和等于该数字本身
例如:153就是一个水仙花数,因为153 = 1³ + 5³ + 3³
*/
public class 水仙花数问题 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数");
int n=scanner.nextInt();
int sum=0;
while (n!=0){
int x=n%10;
n=n/10;
sum=sum+x*x*x;
}
System.out.println(sum);
}
}
第二十五题:加减乘除运算问题
package pratice;
public class 加减乘除运算 {
public static void main(String[] args) {
add(3,4);
sub(2,4);
add(3.2,5.4);
}
public static void add(int a,int b){
int sum;
sum=a+b;
System.out.println(sum);
}
public static void sub(int a,int b){
int sum;
if(a>b){
sum=a-b;
}else {
sum=b-a;
}
System.out.println(sum);
}
public static void add(double a,double b){
double sum;
sum=a*b;
System.out.println(sum);
}
}
第二十六题:顺序数组打乱输出问题
package pratice;
import java.util.Arrays;
import java.util.Random;
/*
练习题:生成一个顺序数组,将这个数组的元素打乱顺序后输出
*/
public class shuffleArray {
public static void main(String[] args) {
int[]a=f();
for (int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println("\n");
shuffle(a);
System.out.println(Arrays.toString(a));
}
public static int[] f(){
int[]a=new int[6];
for (int i=0;i< a.length;i++){
a[i]=i+1;
}
return a;
}
public static void shuffle(int[] a){
for (int i=0;i<a.length;i++){
int j=new Random().nextInt(a.length);
int t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
第二十七题:斐波那契数列问题
用循环实现
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<str.length();i++){
System.out.print("转换前:"+str.charAt(i)+" ");
char ch=str.charAt(i);
if(ch>='a'&&ch<='z'){
ch=(char)((int)ch-32);
}
System.out.println("转换后"+ch);
str1+=ch;
}
System.out.println("转换后的序列:"+str1);
}
}
相关文章
暂无评论...