首页 > 其他分享 >蓝桥杯学习

蓝桥杯学习

时间:2023-01-14 21:56:42浏览次数:35  
标签:学习 String int System 蓝桥 new public Scanner

1,九进制转换成十进制

做错题了,但是也是简单的签到题,

 

import java.util.Scanner;
public class Main{
        public static void main(String[]  args){
                    Scanner sc=new Scanner (System.in);
                     int a=2*1+2*9+0+2*9*9*9;
                     System.out.println(a);'
                }
}

 

2,星期计算

 

星期天

星期一

星期二

星期三

星期四

星期五

星期六

1

2

3

4

5

6

0

下行是sum对应的值,所以当sum={2,3,4,5,6,0}时要+6再与7取余,当sum=1时要+6

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int a=20;
        int b=22;
        int sum=(int)(Math.pow(a,b)%7);
      if(sum==1){
       System.out.println(sum+6);
       }else System.out.println((sum+6)%7);
        scan.close();
    }
}

3,山

只能暴力解题了,无其他的方法了

利用了StringBuffer和String的转换和int与String之间的转换

<1>int a = 123;

String s = "" + a;   //直接拼接 “”

<2>int a =123;

String s = String.valueOf(a); //调用String的valueOf()方法

<3>int a = 123;

String s = Integer.toString(a);//调用整型包装类Integer的toString()方法

字符串转换成int

  <1>String ch=”123”;

   Int a=Integer.parseint(ch);]

<2>String s = "1234";

int a = Integer.valueOf(s).intValue();

String和StringBuffert之间的转换

<1>StringBuffer s=new StringBuffer(“hello”);

   String ch=s.tostring();

package train;

import java.util.Scanner;

public class mou {
    static boolean check(int x){
        String s=String.valueOf(x);
        for(int i=0;i<s.length()/2;i++){
            if(s.charAt(i)!=s.charAt(s.length()-i-1)) return false;
        }
        for(int i=1;i<s.length()/2+1;i++){
            if(s.charAt(i)<s.charAt(i-1)) return false;
        }
        return true;
    }
    public static void main(String [] args){

        int ans=0;
        for(int i=2022;i<=2022222022;i++){
            if(check(i))ans++;
        }
        System.out.println(ans);
    }
}

4,字符统计

签到题,

package train;
import java.util.Scanner;
public class test_2 {
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);
        String s= scan.nextLine();
        int []ch=new int[27];
        int max=0;
        for(int i=0;i<s.length();i++){
            ch[(int)s.charAt(i)-65]++;
            if(ch[(int)s.charAt(i)-65]>max){
                max=ch[(int)s.charAt(i)-65];
            }
        }
        for(int i=0;i<27;i++){
            if(ch[i]==max){
                System.out.println((char)(i+65));
            }
        }

    }
}

 

5,最少刷题数

此题有点恶心,起初只以为是签到题,找出中位数然后直接比较大小,然后比中位数小的就可以加到比中位数大即可,到最后全部考虑完毕通过率只有70%,很不能理解,就先这样吧

package train;
import java.util.Scanner;
import java.util.Arrays;
public class test_3 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n;
        n = scan.nextInt();
        int[] a = new int[n];
        int[] b = new int[n];//存储要加多少数
        int[] c = new int[n];//存储输入的数组
        for (int i = 0; i < n; i++) {
            a[i] = scan.nextInt();
            c[i] = a[i];
        }
        Arrays.sort(c);
        int mid;
        mid = c[n / 2];
        int k=0;
        for(int i=0;i<n;i++){
            if(mid==a[i])
                k++;
        }
        if (n % 2 == 0&&k==1) {

            for (int i = 0; i < n; i++) {
                if (a[i] < mid)
                    System.out.print(mid - a[i]);
                else System.out.print("0");
                System.out.print(" ");
            }
        } else {
            for (int i = 0; i < n; i++) {
                if (a[i] < mid)
                    System.out.print(mid - a[i] + 1);
                else System.out.print("0");
                System.out.print(" ");
            }
        }
    }
}

6,求阶乘

先是find一个x查找因子5就可以,一个阶乘有几个因子5,就会有几个尾数零

然后使用二分查找,因为有一个区间在这个区间里面查找k

package train;

import java.util.Scanner;

public class test_4 {
    static long find(long x){
        long res=0;
        while(x!=0){
            res=res+x/5;
            x=x/5;
        }
        return res;
    }
    static void solve(){

    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        long k=sc.nextLong();
        long mid=0;
        long left=1;
        long right=Long.MAX_VALUE-5;
        while(left<=right){
            mid=(left+right)/2;
            if(find(mid)>=k)right=mid-1;
            else left=mid+1;
        }
        System.out.println(find(left)==k?left:-1);
    }
}

 

标签:学习,String,int,System,蓝桥,new,public,Scanner
From: https://www.cnblogs.com/dfsdd/p/17052635.html

相关文章

  • 国家图书馆,学习流式计算是种怎样的体验
    有点怀念起北京来。史铁生小说里的地坛,满山枫叶的香山,如诗如画的颐和园,美仑美奂的天坛,很多景点都让我流连忘返。在我心里,有一处很神圣的地方,它是知识和希望的象征,那就......
  • 2023/1/14 20221321杨渝学习打卡
    python学习学习链接:https://www.bilibili.com/video/BV14r4y1k7F9/?spm_id_from=333.999.0.0&vd_source=a989a1afa6cb8b6527dd9bf059d71439元组字典元组元组,英文为t......
  • Linux学习-DAY3
    1.强大好用的SHELLShell就是终端程序的统称,它充当了人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端程序,它就会调用相应的程序服务去完成某些工作。现在包括​​红帽​......
  • “动手学强化学习Pytorch版”笔记
    书籍一:2.3.3梯度:梯度就是对张量中的每个变量都求偏导,求出某点的值,然后将他们按照原先张量的对应顺序写成一个新张量,这个新张量就是原先张量在某点的梯度如:importtor......
  • 《动手学深度学习》Accumulator累加器的理解
    部分代码因为样式原因看不清,忘记应该怎么改鼠标选中之后就能看清了classAccumulator:"""在n个变量上累加"""def__init__(self,n):self.data=[......
  • Google_Book_20Things.前言以及前四项学习笔记
    20THINGSILEARNEDABOUTBROWSERSANDTHEWEBIllustratedbyChristophNiemann.WrittenbytheGoogleChromeTeam.关于浏览器与网络的20件事前言(Foreword)任何......
  • 线段树优化建图学习笔记
    使用场景:单点向区间,区间向单点或区间向区间建边。实现原理:用线段树的一个节点管辖一段图上区间的顶点。实现步骤:将原图中的顶点拆点(理论上,实际代码中不需要),出点和入点......
  • Redis 6 学习笔记 3 —— 用SpringBoot整合Redis的踩坑,了解事务、乐观锁、悲观锁
    SpringBoot整合Redis时踩到的坑jdk1.8环境,用idea的SpringInitializr创建springboot项目,版本我选的2.7.6。pom文件添加的依赖如下,仅供参考。注意commons-pool2选错版本......
  • 快速学习Flex布局的核心知识技能
    Author:博哥  Time:2023-01-14该文章对应的视频教程去B站观看视频教程一.准备工作1.1创建index.html编写如下代码<!DOCTYPEhtml><htmllang="en"><head>......
  • 【Python基础学习】2.基本图形绘制
    主要参考来源:慕课嵩天老师的“Python语言程序设计”[https://www.icourse163.org/course/BIT-268001?tid=1468130447]2.1深入理解Python语言计算机技术的演进:1946-19......