蓝桥杯打卡day12(3.15)

墨离 2023-03-15 16:38:40

目录

  • 1.0的个数
  • 2.超级质数
  • 3.卡牌

1.0的个数

import java.util.Scanner;

public class 零的个数 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long num = sc.nextLong();
        int ans = 0;
        while(num != 0){
            long m = num % 10;
            if (m == 0)ans++;
            else break;
            num /= 10;
        }
        System.out.println(ans);
    }
}

2.超级质数

这里取100000000进行循环判断,至于为什么能保证超级质数能不大于他,俺也不知

package lanqiaobei.exe.day12;

public class 超级质数 {
    public static void main(String[] args) {
        for(int i = 100000000;; i--){
            if(check(i)){
                System.out.println(i);
                break;
            }
        }
    }

    static boolean check(int num){
        String s = num + "";
        for(int i = 0; i < s.length();i ++){
            for (int j = i; j < s.length(); j ++){
                int tmp = Integer.parseInt(s.substring(i,j+1));
                if (!isPrime(tmp))return false;
            }
        }
        return true;
    }

    //判断是否是质数
    static boolean isPrime(int num){
        if(num == 1)return false;
        for(int i = 2; i <= num / i; i ++){
            if(num % i == 0)return false;
        }
        return true;

    }
}

3.卡牌

import java.io.*;
import java.util.*;

public class 卡牌 {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static PrintWriter pr = new PrintWriter(new OutputStreamWriter(System.out));
    static long n,m;
    static int N = 200010;
    static long[] a = new long[N];
    static long[] b = new long[N];

    public static void main(String[] args) throws IOException {
        String[] s = br.readLine().trim().split(" ");
        n = Long.parseLong(s[0]);
        m = Long.parseLong(s[1]);
        s = br.readLine().trim().split(" ");
        //可能凑出的最大牌
        int target = Integer.MAX_VALUE;
        for (int i =0; i < n; i ++){
            a[i] = Long.parseLong(s[i]);
        }
        s = br.readLine().trim().split(" ");
        for (int i =0; i < n; i ++){
            b[i] = Long.parseLong(s[i]);
            target =(int)Math.min(a[i] + b[i],target);
        }

        int l = 1,r = target;
        while(l < r){
            int mid = l + r  + 1>> 1;
            if(check(l,r,mid))l = mid;
            else r  = mid - 1;
        }
        pr.println(r);
        pr.flush();
    }

    static boolean check(int l,int r,int mid){
        long sum = 0;
        for(int i = 0;i < n;  i++){
            long v = mid - a[i];
            if(v > 0){
                sum += v;
                if(sum > m)return false;
                continue;
            } else if(v > b[i]) return false;
        }
        return true;
    }
}
...全文
15 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,779

社区成员

发帖
与我相关
我的任务
社区描述
和众多高校算法内卷分子,一起学习和交流算法那。浓郁的算法交流氛围,拒绝躺平,有效内卷。加入我们,私信我拉你入核心内卷群。
算法数据结构leetcode 个人社区
社区管理员
  • 执 梗
  • Dream-Y.ocean
  • ღCauchyོꦿ࿐
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

 刷题!

试试用AI创作助手写篇文章吧