Java练习题191014

本文集合了多个Java编程挑战,包括年龄分类、素数判断、乘法口诀表、水仙花数查找等,旨在提升编程技能,适合初学者及进阶者练习。
//01 年龄
根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)

import java.util.Scanner;
public class Test{

   public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个你想判断的数:");
        int a = sc.nextInt();
      if (a <= 18 && a > 0) {
         System.out.println("少年");
      }else if (a >18 && a<29) {
         System.out.println("青年");
      }else if (a >=29 && a < 56) {
         System.out.println("中年");
      }else if (a >= 56) {
         System.out.println("老年");
      }else {
         System.out.println("输入错误");
      }
   }
}
//02 判断是否是素数
import java.util.Scanner;
public class Test{
   public static void main(String[] args){
      Scanner sc = new Scanner(System.in);
      System.out.println("请输入要判断的数字");
      int num = sc.nextInt();
      int i = 0;
      if (num < 2) {
         System.out.println("不是素数");
      }else if (num == 2) {
         System.out.println("是素数");
      }else {
         for(i = 2;i < num; i++){
            if(num % i == 0) {
               System.out.println("不是素数");
               break;
            } else if (i == (num - 1)) {
               System.out.println("是素数");
               break;
            }
         }
      }
   }
}

//03打印 1 - 100 之间所有的素数
public class Test {

    public static void main(String[] args){
        for (int i = 2 ;i < 101;i++){
            if (func(i)) {
                System.out.println(i+" ");
            }
        }
    }

    public static boolean func(int num ){
        for (int i =2;i < num ;i++){
            if ( num % i == 0){
                return false;
            }
        }return true;
    }
}


//04输出 1000 - 2000 之间所有的闰年

public class Test{

    public static void main(String[] args){
        for(int year = 1000; year <= 2000;year++){
            if (year % 100 != 0){
                if (year % 4 == 0){
                    System.out.println(year+"是闰年");
                }
            }else if (year % 400 == 0){
                System.out.println(year+"是大闰年");
            }
        }
    }
}


//05 输出乘法口诀表
public class Test{

    public static void main(String[] args){
        for (int i = 1;i <= 9;i++){
            for (int j = 1;j <= i;j++){
                System.out.println(i+"*"+j+"="+(i*j));
            }
            System.out.println( );
        }
    }
}


//06 求两个正整数的最大公约数
import java.util.Scanner;

public class Test{

    public static void main (String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个正整数");
        int a = sc.nextInt();
        System.out.println("请输入第二个正整数");
        int b = sc.nextInt();
        System.out.println(a+"和"+b+"的最大公约数是"+Gys(a,b));
    }

    public static int Gys(int x,int y){
        int num = 1;
        for (int i =1; i <= x;i++){
            if (x % i == 0 && y % i == 0){
                num = i;
            }
        }
        return num;
    }
}

//07  计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。

public class Test{

    public static void main(String[] args){
        double n = 1.0;
        double sum = 0;
        double sum1 = 1.0;
        double sum2 = 1.0;
        while(n <= 100){
            if (n % 2 != 0){
                sum1 += (1 / n);
            }else {
                sum2 += (1 / n);
            }
            n++;
        }
        sum = sum1 - sum2;
        System.out.println(sum);
    }
}

//08  编写程序数一下 1到 100 的所有整数中出现多少个数字9。
public class Test{

    public static void main (String[] args){
        int count = 0;
        for (int i = 1; i < 100;i++ ){
            if (i % 10 == 9 ){
                count++;
            }
            if (i / 10 == 9 ){
                count++;
            }
        }
        System.out.println(count);
    }
}


//09求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。)

public class Test{

    public static void main (String[] args){
        int count = 0;
        for(int i = 0 ;i < 1000;i++){
            int a = i / 100;
            int b = (i % 100) / 10;
            int c = i % 10;
            int sum = a*a*a+b*b*b+c*c*c;
            if (sum == i){
                System.out.println(i);
                count++;
            }
        }
        System.out.println("水仙花数的个数为"+ count);
    }
}


//10编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序

import java.util.Scanner;
public class Test{

    public static void main (String[] args){
        System.out.println("欢迎来到用户登录系统,请输入密码!");
        int word = 123;
        for (int i = 1;i <= 3;i++){
            System.out.println("密码:");
            Scanner sc = new Scanner(System.in);
            int password = sc.nextInt();
            if (word == password){
                System.out.println("登录成功");
                break;
            }
            else{
                System.out.println("失败,您还有"+(3-i)+"次机会!");
            }
            sc.close();
        }
    }
}


//11 写一个函数返回参数二进制中 1 的个数
public class Test{

    public static int func(int num){
        int count = 0 ;
        while(num > 0){
            if ((num & 1 )== 1){
                count++;
            }
            num = num>>1;
        }
        return count;
    }
    public static void main (String[] args){
        int i =15;
        int j = func(i);
        System.out.println(Integer.toBinaryString(i));
        System.out.println(j);
    }
}


//12  获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
public class Test{
    public static void main(String[] args) {
        int num = 17;
        int[] arr1={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//偶数
        int[] arr2={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//奇数
        int j=0;
        for(int i=0;i<32;i+=2){
            arr1[j]=(num>>i) & 1;
            j++;//偶数
        }
        j=0;
        for(int i=1;i<32;i+=2){
            arr2[j]=(num>>i) & 1;
            j++;//奇数
        }
        for(int i=15;i>=0;i--){
            System.out.print(arr1[i]);
        }
        System.out.println("");
        for(int i=15;i>=0;i--){
            System.out.print(arr2[i]);
        }
    }
}



//13 输出一个整数的每一位
public class Test{

    public static void every(int num) {
        if(num > 9) {
            every(num/10); //递归
        }
        System.out.print(num%10 + " ");
    }
    public static void main(String[] args){
        every(1234);
    }
}


//14 猜数字游戏
import java.util.Random;
import java.util.Scanner;
public class Test{
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        Random rand = new Random();
        int randNum = rand.nextInt(100)+1;

        while(true) {
            System.out.println("输入你要猜的数字:");
            int num = scan.nextInt();
            if(num > randNum) {
                System.out.println("大了");
            }else if (num == randNum) {
                System.out.println("猜对了");
                break;
            }else {
                System.out.println("小了");
            }
        }
        scan.close();
    }
}
内容概要:本文围绕“基于蓄电池进行调峰和频率调节研究”,提出了一种采用超线性增益的联合优化方法,并通过Matlab代码实现相关仿真与验证。研究聚焦于电力系统中蓄电池在调峰(平衡负荷波动)和频率调节(维持电网稳定)双重功能下的协调优化问题,通过构建数学模型,引入超线性增益机制提升控制精度与响应效率,从而提高储能系统的运行经济性与电网稳定性。文中还提供了完整的代码资源链接,便于复现与进一步研究,属于电力系统智能管理领域的典型技术应用。; 适合人群:具备电力系统基础知识、储能技术背景及一定Matlab编程能力基于蓄电池进行调峰和频率调节研究【超线性增益的联合优化】(Matlab代码实现)的高校研究生、科研人员或从事新能源系统优化的工程技术人员;尤其适合开展储能调度、微电网优化等相关课题研究的学习者。; 使用场景及目标:① 掌握蓄电池在电力系统调峰与调频中的协同工作机制;② 学习并复现基于超线性增益的联合优化算法设计与建模方法;③ 利用Matlab/Simulink平台实现储能系统优化控制策略的仿真分析,服务于科研论文复现、项目开发或算法改进。; 阅读建议:建议结合文中提到的YALMIP工具包和网盘资源,边阅读边运行代码,重点关注目标函数构建、约束条件设置及优化求解流程;同时可对比传统线性增益方法,深入理解超线性增益带来的性能提升机制。
内容概要:本文介绍了一种基于稀疏贝叶斯学习(SBL)的轴承故障诊断方法,提出两种群稀疏学习算法用于提取故障脉冲信号。第一种算法仅利用故障脉冲的群稀疏性,第二种进一步结合其周期性行为,以提升故障特征提取的准确性与鲁棒性。文档提供了完整的Matlab代码实现,适用于振动信号分析与早期故障检测,具有较强的工程应用价值。此外,文中还附带了多个科研领域的仿真资源链接,涵盖电力系统、信号处理、机器学习、路径规划等多个方向,突出MATLAB在科研仿真中的广泛应用。; 适合人群:具备一定信号处理或机械故障诊断基础,熟悉Matlab编程,从【轴承故障诊断】一种用于轴承故障诊断的稀疏贝叶斯学习(SBL),两种群稀疏学习算法来提取故障脉冲,第一种仅利用故障脉冲的群稀疏性,第二种则利用故障脉冲的额外周期性行为(Matlab代码实现)事科研或工程应用的研究生、工程师及科研人员;对智能诊断、稀疏表示、贝叶斯学习感兴趣的技术人员。; 使用场景及目标:①应用于旋转机械(如轴承、齿轮箱)的早期故障检测与健康监测;②研究群稀疏性与周期性先验在信号分离中的建模方法;③复现SBL算法并拓展至其他故障特征提取任务;④结合所提供的网盘资源开展相关领域仿真研究与算法开发。; 阅读建议:建议结合Matlab代码逐行理解算法实现细节,重点关注群稀疏建模与周期性约束的数学表达;推荐对比两种算法的实验结果以深入理解其性能差异;同时可利用提供的网盘资源拓展学习其他仿真技术,提升综合科研能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值