第十五届蓝桥杯模拟赛(第二期)

大家好,我是晴天学长,本次分享,制作不易,本次题解只用于学习用途,如果有考试需要的小伙伴请考完试再来看题解进行学习,需要的小伙伴可以点赞关注评论一波哦!后续会继续更新第三期的。💪💪💪


一 .放像素

请添加图片描述


问题描述
  小蓝要在屏幕上放置一行文字,每个字的宽度相同。
 小蓝发现,如果每个字的宽为 36 像素,一行正好放下 30 个字,字符之间和前后都没有任何空隙。
  请问,如果每个字宽为 10 像素,字符之间不包含空隙,一行可以放下多少个字?
答案提交
  这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

1) .算法思路


2).算法步骤


3). 代码实例


4).总结
  • 答案:108

二 .求余数

在这里插入图片描述

问题描述
  求 2**2023%1000,即 2的2023次方除以1000的余数。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

1) .算法思路


2).算法步骤


3). 代码实例

package LanQiaoTest.枚举;public class 求余数_2 {public static void main(String[] args) {int num = 2;int sum = 0;for (int i = 2; i <= 2023; i++) {num = (num*2)%1000;sum++;}System.out.println(num);}
}

4).总结
  • 答案:608

三 .进制转化

在这里插入图片描述

问题描述 如果一个正整数转化成二进制与转换成八进制后所有数位的数字之和相等,则称为数位和相等的数。   前几个数位和相等的正整数为 1, 8, 9, 64, ……   请问第 23 个数位和相等的正整数是多少? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

1) .算法思路


2).算法步骤


3). 代码实例

package LanQiaoTest.枚举;public class 进制转换_3 {public static void main(String[] args) {int num = 1;int sum = 0;while (sum < 23) {if (two(num) == eight(num)) {sum++;System.out.print(num + " ");}num++;}}public static int two(int i) {String two = Integer.toString(i,2);int sum = 0;for (int j = 0; j < two.length(); j++) {String temp = String.valueOf(two.charAt(j));sum += Integer.parseInt(temp);}return sum;}public static int eight(int i) {String eight = Integer.toString(i,8);int sum = 0;for (int j = 0; j < eight.length(); j++) {String temp = String.valueOf(eight.charAt(j));sum += Integer.parseInt(temp);}return sum;}
}

4).总结
  • 答案:4169

四 .约数个数

在这里插入图片描述
问题描述
  对于以下这些数(6行,每行6个,共36个),请问约数个数最多的是哪个?(如果有多个,请回答出现最早的那个)
  393353 901440 123481 850930 423154 240461
  373746 232926 396677 486579 744860 468782
  941389 777714 992588 343292 385198 876426
  483857 241899 544851 647930 772403 109929
  882745 372491 877710 340000 659788 658675
  296521 491295 609764 718967 842000 670302
答案提交 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

1) .算法思路


2).算法步骤


3). 代码实例

package LanQiaoTest.枚举;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class 约数个数_4 {static String[] lines;static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static int[][] nums = new int[6][6];public static void main(String[] args) throws IOException {for (int i = 0; i < 6; i++) {lines = in.readLine().split(" ");for (int j = 0; j < 6; j++) {nums[i][j] = Integer.parseInt(lines[j]);}}//打印出来for (int i = 0; i < 6; i++) {for (int j = 0; j < 6; j++) {System.out.print(nums[i][j] + " ");;}System.out.println();}//开始计算int maxnums = 0;int max = Integer.MIN_VALUE;for (int i = 0; i < 6; i++) {for (int j = 0; j < 6; j++) {int temp = yueshu(nums[i][j]);if (temp>max){maxnums = nums[i][j];max = temp;}}}System.out.println(maxnums);}//算约数个数public static int yueshu(int nums) {int sum = 1;for (int i = 2; i <= nums; i++) {int  temp = 0;while (nums % i == 0) {temp++;nums /= i;}if (temp != 0) {sum *= temp+1;}}return sum;}
}

4).总结
  • 答案: 901440

五 .传染性

在这里插入图片描述
问题描述
  小蓝有一个01矩阵。他打算将第一行第一列的 0 变为 2 。变化过程有传染性,每次 2 的上下左右四个相邻的位置中的 0 都会变成 2 。直到最后每个 2 的周围都是 1 或 2 结束。
  请问,最终矩阵中有多少个 2 ?
  以下是小蓝的矩阵,共 30 行 40 列。
  0000100010000001101010101001001100000011
  0101111001111101110111100000101010011111
  1000010000011101010110000000001011010100
  0110101010110000000101100100000101001001
  0000011010100000111111001101100010101001
  0110000110000000110100000000010010100011
  0100110010000110000000100010000101110000
  0010011010100110001111001101100110100010
  1111000111101000001110010001001011101101
  0011110100011000000001101001101110100001
  0000000101011000010011111001010011011100
  0000100000011001000100101000111011101100
  0010110000001000001010100011000010100011
  0110110000100011011010011010001101011011
  0000100100000001010000101100000000000010
  0011001000001000000010011001100101000110
  1110101000011000000100011001001100111010
  0000100100111000001101001000001010010001
  0100010010000110100001100000110111110101
  1000001001100010011001111101011001110001
  0000000010100101000000111100110010101101
  0010110101001100000100000010000010110011
  0000011101001001000111011000100111010100
  0010001100100000011000101011000000010101
  1001111010010110011010101110000000101110
  0110011101000010100001000101001001100010
  1101000000010010011001000100110010000101
  1001100010100010000100000101111111111100
  1001011010101100001000000011000110110000
  0011000100011000010111101000101110110001
答案提交 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

1) .算法思路

  • dfs

2).算法步骤

1.使用循环读取输入的行,并将每个字符解析为整数存储在nmus数组中。

2.打印输出nmus数组。

3.调用dfs方法进行深度优先搜索,初始时传入起始坐标和nmus数组。

4.在dfs方法中,将当前坐标标记为已访问(值设为2),并增加计数器sum。

5.遍历四个方向上的相邻坐标。

6.计算新的坐标newx和newy。

7.检查新坐标是否在合法范围内,并且对应位置的值为0(未访问)。

8.如果满足条件,递归调用dfs方法,传入新的坐标和nmus数组。

9.在dfs方法结束后,返回上一层递归。

10.在主方法中调用dfs方法,传入起始坐标和nmus数组。

11.输出计数器sum的值。


3). 代码实例

package LanQiaoTest.DFS;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;public class 传染性_5 {static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static String[] lines;static int sum;static int[] dx = {0, 0, -1, 1};static int[] dy = {-1, 1, 0, 0};public static void main(String[] args) throws IOException {//接收矩阵int[][] nmus = new int[31][41];for (int i = 1; i <= 30; i++) {lines = in.readLine().split("");for (int j = 1; j <= 40; j++) {nmus[i][j] = Integer.parseInt(lines[j - 1]);}}//打印出来for (int i = 1; i <= 30; i++) {for (int j = 1; j <= 40; j++) {System.out.print(nmus[i][j] + " ");}System.out.println();}dfs(1, 1, nmus);System.out.println(sum);}public static void dfs(int x, int y, int[][] nums) {//出口nums[x][y] = 2;sum++;for (int i = 0; i < 4; i++) {int newx = x + dx[i];int newy = y + dy[i];if (newx >= 1 && newx <= 30 && newy >= 1 && newy <= 40 && nums[newx][newy] == 0) {dfs(newx, newy, nums);}}}
}

4).总结
  • 答案:541

六.左移一位

在这里插入图片描述

问题描述
  给定一个正好六位的正整数 x,请将 x 循环左移一位后输出。
  所谓循环左移一位,是指将原来的十万位变为个位,原来的万位到个位向左移动依次变为十万位到十位。
  例如:194910 左移一位变为 949101 。
  又如:987123 左移一位变为 871239 。
输入格式
  输入一行包含一个整数 x 。保证输入的 x 正好包含 6 个十进制数位,而且十万位和万位上的数字均不为 0 。
输出格式
  输出一行包含一个整数,表示答案。
样例输入
194910
样例输出
949101


1) .算法思路


2).算法步骤


3). 代码实例

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;public class Main {static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static PrintWriter out = new PrintWriter(new PrintWriter(System.out));static String[] lines;public static void main(String[] args) throws IOException {lines = in.readLine().split(" ");int n = Integer.parseInt(lines[0]);String s = Integer.toString(n);String ans = s.substring(1) + s.charAt(0);int result = Integer.parseInt(ans);out.print(result);out.flush();}
}

4).总结

七.最后元音

在这里插入图片描述
问题描述
  输入一个仅包含小写英文字母的字符串,请问这个字符串中的最后一元音是什么。
  在英文中,a, e, i, o, u 共 5 个字母是元音字母,其它字母不是元音字母。
输入格式
  输入一行包含一个字符串,仅由小写英文字符组成,字符串中至少包含一个元音字母。
输出格式
  输出一行包含一个字符,表示答案。
样例输入
lanqiao
样例输出
o
样例输入
cup
样例输出
u
评测用例规模与约定
 对于所有评测用例,1 <= 字符数量 <= 10000 。

1) .算法思路


2).算法步骤


3). 代码实例

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;public class Main {static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static PrintWriter out = new PrintWriter(new PrintWriter(System.out));static String[] lines;public static void main(String[] args) throws IOException {Set<String> set = new HashSet<>();lines = in.readLine().split(" ");String s = lines[0];set.add("a");set.add("e");set.add("i");set.add("o");set.add("u");for (int i = s.length()-1; i >= 0 ; i--) {String c = String.valueOf(s.charAt(i));if (set.contains(c)) {out.println(c);out.flush();return;}}}
}

4).总结
  • 答案:

八. 整数转化

在这里插入图片描述
问题描述
  给定一个整数,对这个整数的一次转换是指将这个整数变为这个整数的所有数位上的非零数字的乘积。
  例如,对 123456789 进行一次转换变为 1*2*3*4*5*6*7*8*9=362880,再进行一次转换变为 3*6*2*8*8=2304,再进行一次转换变为 2*3*4=24,再进行一次转换变为 8。
  给定一个整数,请依次将转换过程中经历的每个整数输出,直到小于 10 。
输入格式
  输入一行包含一个整数 n 。
输出格式
  输出多行,每行包含一个整数。
样例输入
123456789
样例输出
362880
2304
24
8
评测用例规模与约定
  对于 50% 的评测用例,1 <= n <= 10**9 (10的9次方)。
  对于所有评测用例,1 <= n <= 10**18 (10的18次方)。


1) .算法思路


2).算法步骤


3). 代码实例

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;public class Main {static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static PrintWriter out = new PrintWriter(new PrintWriter(System.out));static String[] lines;public static void main(String[] args) throws IOException {lines = in.readLine().split(" ");long sum = Long.parseLong(lines[0]);while (sum > 10) {long temp = sum;long ans = 1;while (temp > 0) {if (temp % 10 != 0) {ans *= temp % 10;temp /= 10;} else temp /= 10;}out.println(ans);sum = ans;}out.flush();out.close();}
}

4).总结

九. 最大移动方格

在这里插入图片描述

问题描述
  小蓝站在一个 n 行 m 列的方格图中间,方格图的每一个方格上都标有一个正整数。
  如果两个相邻方格(上下左右四个方向相邻)内的数的最大公约数大于 1 ,则可以从其中一个方格移动到另一个方格,当然也可以从另一个方格移回第一个方格。
  假设小蓝开始时站在第 r 行第 c 列,请问小蓝可以移动到方格图内的多少个方格?
输入格式
  输入的第一行包含两个整数 n, m ,用一个空格分隔,表示方格图的行数和列数。
  接下来 n 行,每行包含 m 个正整数,相邻整数间用一个空格分隔,依次表示方格图中从第 1 行到第 n 行,每行从第 1 列到第 m 列中的数。
  接下来一行包含两个整数 r, c,用一个空格分隔,表示小蓝所在的行号和列号。
输出格式
  输出一行包含一个整数,表示答案。
样例输入
3 4
3 6 5 5
2 4 3 5
7 8 3 8
3 2
样例输出
5
评测用例规模与约定
  对于50%的评测用例,1 <= n, m <= 100,方格图中的每个数不超过 10**5 (10的5次方)。
  对于所有评测用例,1 <= n, m <= 1000,方格图中的每个数不超过 10**9 (10的9次方)。


1) .算法思路

  • dfs

2).算法步骤


3). 代码实例

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;public class Main {static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static PrintWriter out = new PrintWriter(new PrintWriter(System.out));static String[] lines;static long nums[][] = new long[1100][1100];static boolean[][] st = new boolean[1100][1100];static long sum = 0;static int[] dx = {0, 0, -1, 1};static int[] dy = {-1, 1, 0, 0};public static void main(String[] args) throws IOException {lines = in.readLine().split(" ");int n = Integer.parseInt(lines[0]);int m = Integer.parseInt(lines[1]);//接收数据for (int i = 1; i <= n; i++) {lines = in.readLine().split(" ");for (int j = 1; j <= m; j++) {nums[i][j] = Long.parseLong(lines[j - 1]);}}lines = in.readLine().split(" ");int r = Integer.parseInt(lines[0]);int c = Integer.parseInt(lines[1]);dfs(r,c,nums,n,m);out.println(sum);out.flush();out.close();}private static void dfs(int x, int y, long[][] nums, int n, int m) {st[x][y] = true;sum++;for (int i = 0; i < 4; i++) {int newx = x + dx[i];int newy = y + dy[i];if (newx >= 1 && newx <= n && newy >= 1 && newy <= m && gcd(nums[x][y], nums[newx][newy]) > 1&&st[newx][newy]==false) {dfs(newx, newy, nums, n, m);}}}//最大公约数private static long gcd(long a, long b) {return b == 0 ? a : gcd(b, a % b);}}

4).总结

十. 最大区间和

在这里插入图片描述

问题描述
  给定一个序列 a[1], a[2], …, a[n] 和一个整数 k,请找出一个长度正好为 k 的区间,使得区间中所有数的和最大。
  即要找到一个整数 p ,使得 1 <= p 且 p+k-1 <= n ,使得 a[p]+a[p+1]+...+a[p+k-1] 最大。
输入格式
  输入的第一行包含两个整数 n , k。
  第二行包含 n 个整数,相邻的整数之间使用一个空格分隔,表示给定的序列。
输出格式
  输出一行包含一个整数,表示最大的区间和,你只需要输出和就行,不需要输出方案。 样例输入
6 3
2 3 9 1 9 5
样例输出
19
评测用例规模与约定
  对于 30% 的评测用例,1 <= k <= n <= 30,1 <= a[i] <= 100。
  对于 60% 的评测用例,1 <= k <= n <= 1000,1 <= a[i] <= 10000。
  对于所有评测用例,1 <= k <= n <= 100000,1 <= a[i] <= 1000000。


1) .算法思路

  • 前缀和+滑动窗口

2).算法步骤


3). 代码实例

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;//前缀和+滑动窗口
public class Main {static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static PrintWriter out = new PrintWriter(new PrintWriter(System.out));static String[] lines;public static void main(String[] args) throws IOException {lines = in.readLine().split(" ");int n = Integer.parseInt(lines[0]);int k = Integer.parseInt(lines[1]);long[] sum = new long[n];lines = in.readLine().split(" ");sum[0] = Integer.parseInt(lines[0]);//前缀和for (int i = 1; i < n; i++) {sum[i] += Long.parseLong(lines[i])+sum[i-1];}long max = Long.MIN_VALUE;//滑动窗口for (int i = 0; i <= n - k; i++) {long ans = 0;if (i==0){ans = sum[i+k-1];}else {ans = sum[i+k-1]-sum[i-1];}max = Math.max(max, ans);}out.println(max);out.flush();out.close();}
}

4).总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/209020.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wvp gb28181 pro 平台国标级连功能说明

国标28181不同平台之间支持两种连接方式&#xff0c;平级和上下级&#xff0c;WVP目前支持向上级级联。 测试环境 测试平台上级&#xff1a;192.168.10.209&#xff08;Alam centos8&#xff09; 测试平台下级&#xff1a;192.168.10.206&#xff08;ky10_x86&#xff09; 下级…

VUE语法-ref和reactive响应式数据引用

1、响应式概述 在vue中定义一个参数&#xff0c;当这个参数在使用中发生了变化&#xff0c;在页面中对这个数据应用的地方都会同步的发生变化&#xff0c;这个就是数据响应式。 2、创建一个非响应式的参数 该程序中采用的是VUE3的用法&#xff1a; 1、在程序中定义了一个局…

应用于智慧金融的AI边缘计算盒子+AI算法软硬一体化方案

传统金融营业厅存在运营管理模式落后、资源投放不平衡、从业人员培训效果不达预期、客户体验割裂等普遍现象&#xff1b; 部署英码数字金融解决方案&#xff0c;将助力企业从传统金融模式快速向数字金融模式转变&#xff0c;可针对每一个客户定制个性化“一对一”服务&#xff…

【栈和队列(2)】

文章目录 前言队列队列方法队列模拟实现循环队列练习1 队列实现栈 前言 队列和栈是相反的&#xff0c;栈是先进后出&#xff0c;队列是先进先出&#xff0c;相当于排队打饭&#xff0c;排第一的是最先打到饭出去的。 队列 队列&#xff1a;只允许在一端进行插入数据操作&…

MySQL 8创建数据库、数据表、插入数据并且查询数据

我使用的数据库是MySQL 8。 创建数据库 create database Bookbought; -- 创建数据库Bookbought use Bookbought; -- 使用数据库Bookbought创建数据表 创建用户表bookuser。 create table ## 往allbook里边插入数据(id INT PRIMARY KEY AUTO_INCREMENT, -- id 为 主键userna…

Golang数据类型(字符串)

字符串重要概念 根据Go语言官方的定义&#xff1a; In Go, a string is in effect a read-only slice of bytes. 意思是Go中的字符串是一组只读的字节切片&#xff08;slice of bytes&#xff09;&#xff0c;每个字符串都使用一个或多个字节表示&#xff08;当字符为 ASCII 码…

OpenWrt作为旁路由(网关)配置

目录 背景前提条件环境操作步骤物理层连接设置与主路由同一网段禁用IPv6取消LAN接口桥接防火墙配置 背景 本文简介如何配置OpenWrt&#xff0c;使其作为旁路由&#xff08;网关&#xff09;运行。 旁路由大概有以下这几种工作方式&#xff1a; 主路由开DHCP&#xff0c;网关未…

LeetCode刷题---反转链表

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏&#xff1a;http://t.csdnimg.cn/ZxuNL http://t.csdnimg.cn/c9twt 前言&#xff1a;这个专栏主要讲述递归递归、搜索与回溯算法&#xff0c;所以下面题目主要也是这些算法做的 我讲述…

XSS漏洞原理

XSS漏洞介绍&#xff1a; 跨站脚本攻击XSS(Cross Site Scripting)&#xff0c;为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆&#xff0c;故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码&#xff0c;当用户浏览该页面时&#xff0c;嵌入We…

【读书笔记】微习惯

周日晚上尝试速读一本书《微习惯》&#xff0c;共七章看了下目录结构并不复杂&#xff0c;计划每章7-8分钟读完&#xff0c; 从20:15-21:00。读的时候&#xff0c;订下闹钟&#xff0c;催促着自己的进度。边读边记了一些要点和微信读书里面的划线。 第六章实践内容最为丰富&…

CnosDB有主复制演进历程

分布式存储系统的复杂性涉及数据容灾备份、一致性、高并发请求和大容量存储等问题。本文结合CnosDB在分布式环境下的演化历程&#xff0c;分享如何将分布式理论应用于实际生产&#xff0c;以及不同实现方式的优缺点和应用场景。 分布式系统架构模式 分布式存储系统下按照数据复…

计算机网络TCP篇①

目录 一、TCP 基本信息 1.1、TCP 的头格式 1.2、什么是 TCP 1.3、什么是 TCP 连接 1.4、TCP 与 UDP 的区别 1.2、TCP 连接建立 1.2.1、TCP 三次握手的过程 1.2.2、为什么是三次握手&#xff1f;不是两次&#xff1f;四次&#xff1f;&#xff08;这个问题真是典中典&am…

C++基础 -34- 输入输出运算符重载

输出运算符重载格式 ostream & operator<<(ostream &out,person a) {cout << a.a << endl;return out; }举例输出运算符重载 #include "iostream"using namespace std;class person {public:person(int a):a(a){}int a; };ostream &…

LabVIEW在调用image.cpp或drawmgr.cpp因为DAbort而崩溃

LabVIEW在调用image.cpp或drawmgr.cpp因为DAbort而崩溃 出现下列问题&#xff0c;如何解决&#xff1f; 1. LabVIEW 程序因image.cpp或drawmgr.cpp中的错误而崩溃 2. 正在通过cRIO-9034运行独立的LabVIEW应用程序&#xff0c;但它因drawmgr.cpp中的错误而崩溃 …

什么是DDoS攻击

DDoS攻击 1. 定义2. DDoS攻击类型2.1 网络层攻击2.2 传输层攻击2.3 应用层攻击 3.DDoS攻击态势特点 1. 定义 分布式拒绝服务&#xff08;DDoS&#xff09;攻击是一种常见的网络攻击形式。攻击者利用恶意程序对一个或多个目标发起攻击&#xff0c;企图通过大规模互联网流量耗尽…

Zabbix监控接收SNMPTrap消息与SNMPTT结合

一.SNMP 协议 1.协议介绍 snmp 协议是日常使用的较多的一种协议&#xff0c;绝大多数网络设备/存储等都支持 snmp 协议&#xff0c;通过此协议可以实现设备状态的监控及管理。 2.主要组成 SNMP 协议包括以下三个部分: SNMP Agent&#xff1a;负责处理 snmp 请求&#xff0c…

Android11适配已安装应用列表

Android11适配已安装应用列表 之前做过已安装应用列表的适配&#xff0c;最近国内版SDK升级到33和隐私合规遇到很多问题&#xff0c;于是把已安装应用列表记录一下&#xff1a; 1、在Android11及以上的适配&#xff1a; package com.example.requestinsttallapplistdemoimpo…

POSTGRESQL中如何利用SQL语句快速的进行同环比?

目录 1. 引言2. 数据准备3. 时间序列数据处理4. 同比分析4.1 对两年的数据进行对比4.2 计算两年的差额和同比4.3 细分后的同比计算 5. 环比分析5.1 简单的日期环比计算5.2 先聚合再进行环比计算5.3 考虑日期不连续的环比计算 6. 性能优化技巧7. 注意事项与常见问题8. 结语 1. 引…

在Excel中,只需点击几下,就能只复制和粘贴可见单元格

你可以在Excel中隐藏列、行或单元格&#xff0c;以使数据输入或分析更容易。但是&#xff0c;当你复制并粘贴一个包含隐藏单元格的单元格区域时&#xff0c;它们会突然重新出现。 你可能没有意识到&#xff0c;但有一种方法可以只复制和粘贴Microsoft Excel中的可见单元格。只…

sql中group by和having的使用

group by&#xff1a;按照某个字段或者某些字段进行分组。 having&#xff1a;对分组之后的数据进行再次过滤&#xff0c;having必须和group by一起用&#xff0c;且在group by后面。 比如person表如下&#xff08;以下查询均基于此表&#xff09;&#xff1a; 1.group by 用法…