首页 > 编程语言 >Java学习日记 (day4)

Java学习日记 (day4)

时间:2024-07-20 08:59:36浏览次数:12  
标签:test2 Java package int day4 public class static 日记

习题练习

1. 输入某年某月某日,判断这一天是这一年的第几天?输 入某年某月某日,判断这一天是这一年的第几天

package test.test2_1;

import java.util.Scanner;

public class Test_1 {
    public static int search_month(int m,int[] arr){
        if(m==2)
        {
            return -1;
        }
        for(int i=0;i<arr.length;i++){
            if(arr[i]==m){
                return 1;
            }
        }
        return 0;
    }
    public static void main(String[] args) {
        int[] arr_b_m = {1,3,5,7,8,10,12};
//定义大月,在后续使用中只需要遍历该数组,如果能找到则为大月。
//注意2月需要单独判断
        int m;
        Scanner sc = new Scanner(System.in);
        int s=sc.nextInt();
        int t=sc.nextInt();
        int total=0;
        m=search_month(s-1,arr_b_m);
        for(int i=1;i<s;i++){
            if(m==1){
                total+=31;
            }
            else if(m==-1){
                total+=28;
            }
            else if(m==0){
                total+=30;
            }
        }
        System.out.println(total+t);
    }
}

2. 有1、2、3、4个数字,能组成多少个互不相同且无重复 数字的三位数?都是多少?

package test.test2_1;

public class Test_2 {
    public static void main(String[] args) {
        for (int i = 1; i <= 4; i++) {
            for(int j = 1; j <= 4; j++) {
                for(int k = 1; k <= 4; k++){
                    System.out.print(100*i+10*j+k);
                    System.out.println();
                }
            }

        }
    }
}

3. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字 例如5+55+555+5555+55555(此时共有5个数相加),几个数相加有键盘控制 说明:从键盘中输入数字几 就计算该数字的1到几位数的和: 输入 2 就计算 2+22 输入 3 就计算3+33+333

package test.test2_1;

import java.util.Scanner;

public class Test_3    {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int sum=n;
        int total=n;
        for (int i = 0; i < n; i++) {
            sum=10*sum+n;
            if(i==n-1){
                System.out.print(sum+"=");
            }
            else{
                System.out.print(sum+"+");
            }
            total+=sum;
        }
        System.out.println(total);
    }
}

4. 求1000以内的勾股数 所谓勾股数,一般是指能够构成直角三角形3条边的3个正整数(a,b,c) a*a+b*b=c*c.

package test.test2_1;

public class Test_4 {
    public static void main(String[] args) {
        for (int i = 1; i <=100; i++) {
            for(int j = i; j <=100 ; j++){
                for(int k = j+1; k <=100 ;k++){
//该方法循环次数过高,可以进行数学运算减少循环上限
                    if(i*i+j*j==k*k){
                        System.out.println(i+","+j+","+k);
                    }
                    else if(i*i+j*j>k*k){
                        break;
                    }
                }
            }
        }
    }
}

5. 求100以内的所有素数 素数(质数)指的是除了1和自身以外就没有其他数能够整除。

package test.test2_1;

import java.util.ArrayList;
import java.util.List;

public class Test_5 {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
//定义一个数组用来存放所有的质数
        System.out.print("1\t2\t3\t");
//首先把准备提前存入的数据打印出来
        list.add(2);
        list.add(3);
//这里不添加1,目的是防止n%1==0恒为真的情况
        int i=4;
        while (i<100){
            int j=0;
            while(j<list.size()){
                if(i%list.get(j)==0){
                    break ;
                }
                else
                    j++;
            }
//遍历质数表,如果数字为合数那么J的结果一定不为list.size()
            if(j==list.size()){
                list.add(i);
                System.out.print(i+"\t");
            }
            else {
                i++;
            }
        }
    }
}

6. 若一个口袋中放有12个球,其中有3个红色的,3个黄色 的,6个绿色的,从中任取8个球,问共有多少中不同的颜 色搭配?

package test.test2_1;

public class Test_6 {
    public static void main(String[] args) {
        int r=3;
        int y=3;
        int g=6;
        int count=0;
        for(int i=1;i<=g;i++){
            for(int j=1;j<=y;j++){
                for(int k=1;k<=r;k++){
                    if(r<12-i-j){
                        break;
                    }
                    else{
                        count++;
                    }
                }
            }
        }
        System.out.println(count);
    }
}

7. 编写一个Java程序在屏幕上输出1!+2!+3!+…… +10!的和。

package test.test2_1;

public class Test_7 {
    public static int jieCheng(int a){
        int r=0;
        for (int i=1;i<=a;i++){
            r+=i*i;
        }
        return r;
    }
    public static void main(String[] args) {
        int sum=0;
        for (int i=1;i<=10;i++){
            sum+=jieCheng(i);
        }
        System.out.println(sum);
    }
}

8. 古典问题:有一对兔子,从出生后第3个月起每个月都生 一对兔子,小兔子长到第三个月后每个月又生一对兔子,假 如兔子都不死,问第十二个月兔子总数为多少?

package test.test2_1;

import Algorithms.Dynamic_Programming.Fibonacci_sequence;

public class Test_8 {
    public static void main(String[] args) {
        int i;
        i=Fibonacci_sequence.fibonacci(12);
//这里调用斐波那契数列直接求结果。
        System.out.println(i);
    }
}
package Algorithms.Dynamic_Programming;

public class Fibonacci_sequence {
//斐波那契数列算法推荐使用递归
   public static int fibonacci(int n) {
        if (n == 1 || n == 2){
            return 1;
        }
        return fibonacci(n - 1) + fibonacci(n - 2);
    }
    public static void main(String[] args) {
        System.out.println(fibonacci(10));
    }
}

9. 将一个正整数分解质因数。例如:输入90,打印出 90=233*5。 

package test.test2_1;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Test_9 {
//这里我们才有老办法,先找到小于输入值的所有质数,该合数一定可以被分解成该质数的乘积。
    static List<Integer> l=new ArrayList<>();
    public static void main(String[] args) {
        l.add(2);
        l.add(3);
        int i=4;
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        while (i<n){
//这里其实只需要找到小于输入值/2的所有质数即可
            int j=0;
            while(j<l.size()){
                if(i%l.get(j)==0){
                    break ;
                }
                else
                    j++;
            }
            if(j==l.size()){
                l.add(i);
            }
            else {
                i++;
            }
        }
        System.out.print(n+"=");
        for(int k=0;k<l.size();){
            if(n==l.get(k)){
                System.out.print(l.get(k));
            }
            else if(n%l.get(k)==0){
                System.out.print(l.get(k)+"*");
                n=n/l.get(k);
                k=0;
            }
            k++;
        }
    }
}

10. 一个整数,它加上100后是一个完全平方数,再加上 168又是一个完全平方数,请问该数是多少?

package test.test2_1;

public class Test_10 {
    public static boolean square_Com(int i){
        double temp=Math.sqrt((double)i);
        int b_z=(int)temp;
        double a_z=temp-(double)b_z;
        if(a_z==0){
            return true;
        }
        return false;
    }
    public static void main(String[] args) {
        int i=10;
        while(true) {
            if(square_Com(i+100)&&square_Com(i+168)){
                System.out.println(i);
                break;
            }
            else
                i++;
        }
    }
}

标签:test2,Java,package,int,day4,public,class,static,日记
From: https://blog.csdn.net/qq_59031302/article/details/140492442

相关文章

  • [java]小程序,用接口做一个打印机
            ......
  • Java基础--实用类(完整版)
    实用类方法一:条件判断方法二:使用枚举枚举性别的枚举packagePracticalclass;/***性别的枚举*/publicenumSex{男,女;}学生类packagePracticalclass;publicclassStudent{Stringchname;Sexsex;publicStudent(St......
  • 【Java】同步方法
    文章目录一、总述二、练习三、StringBuffer一、总述刚刚我们已经学习完了同步代码块,就是将一段代码锁起来,这样就可以解决多线程操作共享数据时带来的数据安全问题。但是如果我们想要将一个方法里面所有的代码全部锁起来,此时就没有必要去用同步代码块了,我们可以直接......
  • java多线程
    程序,进程,线程,并行,并发程序是静态的,进程process是动态的一个进程至少有一个线程多线程程序优点提高应用程序的响应提高CPU利用率改善程序结构并行parallel,指两个或多个事件在同一时刻发生并发concurrency,两个或多个事件在同一个时间段内发生,宏观上是多个进程同步进行......
  • 在 Java 中,怎样设计一个可扩展且易于维护的微服务架构?
    在Java中设计一个可扩展且易于维护的微服务架构,可以考虑以下几个方面:模块化设计:将应用拆分为多个小的、独立的模块,每个模块负责处理特定的业务逻辑。每个模块可以独立开发、测试和部署,增加或替换模块时不会影响其他模块。使用轻量级的通信机制:微服务之间通过RESTfulAPI......
  • JAVA面试框架篇(SSM和MyBatis)
    框架篇一.Spring1.Spring1.1Bean生命周期1.2Bean循环依赖(引用)说说spring中的循环引用构造方法出现了循环依赖怎么解决?1.3Bean线程安全问题问题:Spring中的Bean是线程安全的吗?1.4AOP(什么是AOP?)AOP:AspectOrientedProgramming面向切面编程应用场景(你们项目中有没有......
  • 初级java每日一道面试题-2024年7月19日
    在Java中,重载(Overloading)和重写(Overriding)是面向对象编程中多态性的两个重要概念。1.重载(Overloading)定义:重载是指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可。也就是说,这些方法的名称相同,但参数的个数、类型或顺序至少有一个不同。目的:重载......
  • javaScript常用对象
    1. Array对象JavaScriptArray对象用于定义数组1.1定义格式数组的定义格式有两种:方式1var变量名=newArray(元素列表);例如:vararr=newArray(1,2,3);//1,2,3是存储在数组中的数据(元素)方式2var变量名=[元素列表];例如:vararr=[1,2,3];//1,2,3是......
  • JavaWeb学习笔记后端部分
    后端Web开发MavenApacheMaven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建。Maven作用依赖管理统一的项目结构项目构建仓库安装Maven<mirror><id>alimaven</id><name>aliyunmaven</name><url>h......
  • Java入门基础:Java中的标识符;Java常量与变量;Java基本数据类型;Java运算符
    一,Java标识符【1】标识符:读音 biaozhifu (注意是标zhi符,不是标shi符,“识”这个字是多音字,我也是才发现^_^,你呢?)【2】标识符是?     包,类,变量,方法.....等等,只要是起名字的地方,那个名字就是标识符。【3】标识符定义规范:  1.四个可以(组成部分):数字,字母,下划......