编程题 1-7

1,大数

import java.math.BigInteger;
  BigInteger num1, num2, num3;
   num1 = new BigInteger(sc.next());
   //这是类,不是基本数据类型
   //用sc.next读入而不是nextbiginteger
     num3=num1.add(num2);
	 num3=num1.subtract(num2);
	 .multiply
	 .divide
	 .mod

2, System.out.printf("%.6f\n",a);
保留六位小数
3,

import java.util.Random;
import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long seed=sc.nextLong();
        int n=sc.nextInt();
        Random r = new Random(seed);
        int count=0;
        for(int i=0;i<n;i++) {
            double x =r.nextDouble()*2-1;
            double y =r.nextDouble()*2-1;
            /*
 使用 for 循环生成 n 次随机点,r.nextDouble() 生成一个在 区间 [0.0, 1.0) 之间 区间的随机数,
 通过 * 2 - 1 将其转换为在 [-1, 1) 区间的随机数。
 这两个随机数 x 和 y 分别代表平面上的点的 x 和 y 坐标。
             */
            if ( Math.pow(x, 2) + Math.pow(y, 2)<=1)
            {
                count++;
            }
        }
        System.out.println(4*(double)count/n);
    }
}

4,随机数种子
image

5,
image

import java.util.*;
public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int k = sc.nextInt();
        List<Integer> ss = new ArrayList<Integer>();
        //List 是一个接口,ArrayList 是实现这个接口的具体类
        //声明一个 ArrayList 类型的整数列表 ss,用于存储生成的随机整数。
        //Set<Integer> ss = new HashSet<Integer>();
        Random rand = new Random(k);
        //并用种子 k 进行初始化。这个种子用于生成可复现的随机数序列。
        for(int i = 0;i < n;i++)
        {
//            ss.add(rand.nextInt(m));
//            //于 0 和 m-1 之间的随机整数,并将其添加到 ss 列表中。
            if(i==n-1)
                System.out.println(ss.get(i));
            //仅打印最后一次生成的种子,不使用列表直接打印最后一个也可以
        }
    }
}

6,进制转化

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int T = scanner.nextInt();//输入
        String[] number = new String[T]; for(int i=0;i<T;i++){//输入
            number[i] = bin(scanner.nextInt());
            //bin 方法将其转换为二进制字符串,然后存储在 number 数组
        }
        for(String i:number){//输出
            System.out.println(count(i));
        }
    }
    public static String bin(int num1){//递归实现,将十进制转为二进制
        if(num1/2==0){//商为0时
            return num1%2 + "";//返回转换为String类型的余数
        }else{
            return bin(num1/2) + num1%2 + " ";//下一层递归的结果放左侧
        }
    }
    public static int count(String str){//计算字符串中1的个数
        int num = 0;
        for(int i=0;i<str.length();i++){//遍历字符串
            if(str.charAt(i)=='1'){
                num ++;
            }
        }
        return num;
    }
}

7,日历

import java.util.Calendar;  // 导入 Calendar 类,用于处理日期和时间
import java.util.Scanner;   // 导入 Scanner 类,用于获取用户输入

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);  // 创建 Scanner 对象,用于读取用户输入
        Calendar cal = Calendar.getInstance(); // 获取一个 Calendar 实例,表示当前时间
        int a = sc.nextInt();                   // 读取用户输入的年份
        int count = 0;                          // 初始化计数器,统计星期六的次数

        // 如果输入的年份大于或等于1998
        if (a >= 1998) {
            // 遍历从1月到11月
            for (int i = 0; i < 11; i++) {
                cal.set(Calendar.YEAR, a);     // 设置年份为用户输入的年份
                cal.set(Calendar.MONTH, i);     // 设置月份(0表示一月,11表示十二月)
                cal.set(Calendar.DATE, 13);      // 设置日期为13号
                int t = cal.get(Calendar.DAY_OF_WEEK); // 获取当前设置的日期是星期几

                // 如果星期几为星期六(6)
                if (t == 6) {
                    count++;  // 计数器加1
                }
            }
        }

        System.out.println(count); // 输出13号是星期六的次数
    }
}

2 判断题

1,由Date到String的转换需要用到SimpleDateFormat类对象的format方法。

由String到Date的转换需要用到SimpleDateFormat类对象的parse方法。

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateToStringExample {
    public static void main(String[] args) {
        // 创建一个 Date 对象,表示当前时间
        Date currentDate = new Date();

        // 创建 SimpleDateFormat 对象,定义日期格式
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        // 使用 format 方法将 Date 转换为 String
        String dateString = dateFormat.format(currentDate);

        // 输出结果
        System.out.println("Date to String: " + dateString);
    }
}


2String到Date

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class StringToDateExample {
    public static void main(String[] args) {
        // 定义一个日期字符串
        String dateString = "2024-10-20 14:30:45";

        // 创建 SimpleDateFormat 对象,定义日期格式
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        try {
            // 使用 parse 方法将 String 转换为 Date
            Date parsedDate = dateFormat.parse(dateString);

            // 输出结果
            System.out.println("String to Date: " + parsedDate);
        } catch (ParseException e) {
            // 处理解析异常
            System.out.println("Date format is incorrect: " + e.getMessage());
        }
    }
}

3 单选题

1,
Math.abs 方法会根据输入参数的类型返回相同类型的结果。

2,
floor向下取整
ceil向上取整

public class Main {
    public static void main(String args[]) {
        double x = 6.5;
        System.out.println(Math.floor(x + 1)); // 7.0不是7!!!
        System.out.println(Math.ceil(x));        // 7.0不是7!!!
        System.out.println(Math.round(x));       // 四舍五入7!!!
    }
}

3,数字字符串转化
image

4,image

5,
利用java.util.Date类创建对象,欲得到系统当前时间的语句为
new Date();

6,exp(x) 返回 e^x
7,image

int i1=(int)Math.random()*10;
一直是0,因为Math.r返回0.0-1.0(不含)然后强制转化变成0
Random r=new Random();
int i3 = r.nextInt(10);
[0,10)

image

image

4 多选题

posted on 2024-10-20 15:02  Hoshino1  阅读(4)  评论(0编辑  收藏  举报