自己的碎碎念集合
自己的碎碎念集合
- 2023-09-07 c++叠加三目运算符闰年计算法
- 2023-08-13 一个小题目 A+B problem
- 一、问题及解答
- 关碍
- 总结
- 2023-07-26 C的2至36进制转换函数
- 一、itoa()函数的示例代码
- 总结
- 2023-07-19 平面坐标下判断三角形以及输出周长和面积
- 一. 基本知识
- 总结
- 2023-06-25 达芬奇去除白背景水印
- 一、具体步骤
- 总结
- 2023-06-20 将Libreoffice PPT 文档转换为txt文字
- 2023-05-19 C语言非流输入
- 一、windows平台
- 二、linux平台
- 总结
- 2023-05-11 字符与数组的运用小练习_C语言
- 一、代码
- 总结
- 2023-04-29 C语言二进制读写库
- 一、代码
- 总结
- 2023-04-25 二进制十进制相互转换
- 一、二进制十进制等相互转换
- 总结
- 2023-04-14 lua + C动态库交叉debug
- 一、前期准备
- 二、lldb注入进程
- 总结
- 2023-04-13 Windows环境下lua输入输出编码转换
- 一、为lua编写编码转换库
- 二、lua调用编码转换库demo
- 总结
- 2023-04-12 在Windows环境为lua编写模拟键盘库
- 一、C语言为lua编写库代码
- 总结
- 2023-04-04 在C++中使用 int128 类型
- 一、int128 类型的简单使用
- 总结
- 2023-03-28 scanf [A-B] 中[A-B]的意思
- 2023-03-26 正则表达式的汉字支持
- 一、解决方案: 宽字符
- 总结
- 2023-02-07 C++ constexpr 需要全局或静态才能产生作用
- 2023-02-03 UE 5.1 第一个游戏难点回顾
- 一、UE5.1安装
- 二、开始第一个游戏
- 1. 学习视频地址
- 2023-02-02 C语言如何做到让函数知道传入的数据类型
- 一、gnu扩展宏 __builtin_types_compatible_p
- 二、使用步骤
- 总结
- 2022-12-18 C++模板展开问题
- C++11的递归模板展开和C++17的逗号表达式展开
- 总结
- 2022-11-20 C++小练习, 虚函数求平均值
- 2022-11-19 C++ 基类, 派生类, 虚函数小练习
- 题目:
- 代码:
2023-09-07 c++叠加三目运算符闰年计算法
原文连接:
c++叠加三目运算符怎么看
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{int x;cin>>x;cout<<(x%400==0?"YES":(x%4==0?(x%100!=0?"YES":"NO"):"No"));return 0;
}
2023-08-13 一个小题目 A+B problem
一个小算法问题, 记录一下
一、问题及解答
A+B problem( A+B problem )
描述
小明有一个很大的数字,现在他想要在这个数字中间插入一个+号,来求出这个数的结果,并且他还想知道,这些数中哪个数末尾0最多。
输入
第一行一个整数T(t<=100)表示数据组数
接下来有T行,每行一个数字字符(长度在10^5,最高位不为0)
输出
T行,每行一个整数,表示0最多有多少个
输入
2
2017
44445555
输出
0
3
关碍
条件是数字字符长度在10^5, 内置int类型不可能满足, 意味着可能用到高精度, 但本题不用.
因为只是求末尾0, 意味着算法简单很多.
如果最后一个字符数字是x, 只需在数字串中的其它部分找到的10-x, 如果x为0, 只需找到其它的0的个数即可.
#include <iostream>
#include <string>auto getLastChar(char num) -> char
{char res = static_cast<char>('9' + '1' - num);return (res == '9' + 1) ? '0' : res;
}auto countZero(const std::string &str) -> int
{char chr = getLastChar(str.back());int cnt = 0;for (const auto &i : str){if (i == chr){cnt++;}}return (chr == '5' || chr == '0') ? cnt - 1 : cnt;
}auto main() -> int
{int T = 0;std::cin >> T;std::vector<std::string> vecStr;vecStr.reserve(T);std::string str;for (int i = 0; i != T; ++i){std::cin >> str;vecStr.push_back(str);}for (int i = 0; i != T; ++i){std::cout << countZero(vecStr[i]) << '\n';}return 0;
}
总结
算法不难, 但需要绕个小弯儿.
2023-07-26 C的2至36进制转换函数
有一些C语言初学者学语言的时候比较囫囵吞枣, 最简单的整数转2至36进制函数, 根本没听说过, 还有自己造轮子, 关键还写不对, 其实多看看书, 多查查资料, 有时候可以省很多时间.
一、itoa()函数的示例代码
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>char digStr[64];int main()
{SetConsoleOutputCP(65001);int number = 123456;itoa(number, digStr, 2);printf("数字:%d 转换后的字符串为:%s\n", number, digStr);number = -123456;itoa(number, digStr, 2);printf("数字:%d 转换后的字符串为:%s\n", number, digStr);return 0;
}
总结
代码简单, 函数语义清晰, 简单记录一下.
2023-07-19 平面坐标下判断三角形以及输出周长和面积
平面坐标下判断三角形以及输出周长和面积, 用线性代数的简单知识.
一. 基本知识
在平面坐标, 三个点就是三个向量, 可以通过两个向量同时减去第三个向量, 形成一个顶点在原点的三角形.

我们发现, 只有一种情况三角形不能成立, 就是从原点出发的两个向量在一条直线上

我们可以简单的用向量叉乘判断三角型是否成立, 同时, 向量叉乘的结果是向量形成的平行四边形面积

平行四边形面积的一半就是三角形面积
而三角型的周长, 可以根据勾股定理得出三条边的长度, 相加得出.
以下是代码:
#include <math.h>
#include <stdio.h>// 定义向量结构体
typedef struct
{double x;double y;
} Vector;// 计算向量的差
Vector sub(Vector vecA, Vector vecB)
{return (Vector){vecA.x - vecB.x, vecA.y - vecB.y};
}// 计算向量的叉积
double cross(Vector vecA, Vector vecB)
{return vecA.x * vecB.y - vecA.y * vecB.x;
}// 计算两点之间的距离
double distance(Vector pointA, Vector pointB)
{Vector subAB = sub(pointA, pointB);return sqrt(subAB.x * subAB.x + subAB.y * subAB.y);
}// 计算三角形的周长
double triPer(Vector pointA, Vector pointB, Vector pointC)
{return distance(pointB, pointC) + distance(pointA, pointC) +distance(pointA, pointB);
}// 返回三角形面积, 向量叉积的二分之一的绝对值
double triArea(Vector vecA, Vector vecB, Vector vecC)
{return fabs(cross(sub(vecB, vecA), sub(vecC, vecA))) / 2.0;
}int main()
{Vector pointA;Vector pointB;Vector pointC;scanf("%lf %lf %lf %lf %lf %lf", &pointA.x, &pointA.y, &pointB.x, &pointB.y,&pointC.x, &pointC.y);double rest = triArea(pointA, pointB, pointC);// 判断平面三点是否可构成三角形, 即叉积不为零if (rest){printf("L = %.2lf, A = %.2lf", triPer(pointA, pointB, pointC), rest);}else{printf("Impossible");}return 0;
}
总结
近期在学OpenGL, 顺便学点图形学, 顺便也就学点线性代数, 这就是另外一个世界了.
2023-06-25 达芬奇去除白背景水印
录视频不小心整了个水印, 当时想了几个方法, 重录, ffmpeg命令搞一下, 一张一张幻灯片导成PNG然后一张一张换, 实在是太费劲了.
于是想到这点小玩意达芬奇这么专业的软件一定有办法, 试了试, 还真行
一、具体步骤
- 进入调色界面
- 将所有片段选中, 鼠标右键, 添加到当前群组
- 在节点区域, 选择片段前群组
- 在下方的调整区, 选择窗口, 四边形, 调整大小和位置, 将水印覆盖
- 调色区选一级校色条, 亮部的亮度拉满, 水印消失

总结
没有用到收费的功能, 但只能用于白底或黑底之上的水印, 不是智能去除.
2023-06-20 将Libreoffice PPT 文档转换为txt文字
有时候需要把ppt的文字内容抓出来, 想了一些办法, 没有成功, 后来发现直接用软件的内置功能即可:
文件: 在浏览器中预览
2023-05-19 C语言非流输入
一个有意思的问题c语言的输入输出问题, 网上很多答案, 总结一下.
一、windows平台
vs需要将getch()更改为_getch()
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>char chrArr[32];int main()
{int i = 0;while ((chrArr[i] = getch()) && (chrArr[i] != '\r')){++i;}char *num;int lhs = strtol(chrArr, &num, 10);int rhs = atoi(num);printf("%d %d %d", lhs, rhs, lhs + rhs);
}
二、linux平台
#include <stdio.h>
#include <stdlib.h>
#include <termio.h>
#include <stdbool.h>int getch(void)
{return getchar();
}void setio(bool bl)
{static struct termios tm, tm_old;if (bl){tcgetattr(0, &tm);tm_old = tm;cfmakeraw(&tm); // 更改终端设置为原始模式,该模式下所有的输入数据以字节为单位被处理tcsetattr(0, TCSANOW, &tm);}else{tcsetattr(0, TCSANOW, &tm_old);}
}char chrArr[32];int main()
{setio(true);int i = 0;while ((chrArr[i] = getch()) && (chrArr[i] != '\r')){++i;}setio(false);char *num;int lhs = strtol(chrArr, &num, 10);int rhs = atoi(num);printf("%d %d %d\n", lhs, rhs, lhs + rhs);
}
总结
vs要用 _getch(), mingw和clang用getch(), linux平台需要自己实现, 这不是标准库中的东西, 所以不可移植…
2023-05-11 字符与数组的运用小练习_C语言
一个问答题: 字符与数组的运用 , 考察知识点: scanf的使用, 字符串数组, 字符在C语言本质是整数, 循环, 分支.
一、代码
一道小题目, 考的知识点包括了C语言输入输出, 字符类的本质, 循环, 分支, 挺好的.
#include <stdio.h>
#include <string.h>char strArr[100][100];void encrypted(char *chr);int main()
{int index = 0;// INT DOUBLE FOR WHILE// RETURNwhile (scanf("%s", strArr[index]) != EOF){for (int i = 0; i != strlen(strArr[index]); i++){encrypted(strArr[index] + i);}index++;}for (int i = 0; i != index; i++){printf("%s\n", strArr[i]);}return 0;
}void encrypted(char *chr)
{switch (*chr){case 'A':*chr = 'N';break;case 'B':*chr = 'O';break;case 'C':*chr = 'P';break;case 'D':*chr = 'Q';break;case 'E':*chr = 'R';break;case 'F':*chr = 'S';break;case 'G':*chr = 'T';break;case 'H':*chr = 'U';break;case 'I':*chr = 'V';break;case 'J':*chr = 'W';break;case 'K':*chr = 'X';break;case 'L':*chr = 'Y';break;case 'M':*chr = 'Z';break;case 'N':*chr = 'A';break;case 'O':*chr = 'B';break;case 'P':*chr = 'C';break;case 'Q':*chr = 'D';break;case 'R':*chr = 'E';break;case 'S':*chr = 'F';break;case 'T':*chr = 'G';break;case 'U':*chr = 'H';break;case 'V':*chr = 'I';break;case 'W':*chr = 'J';break;case 'X':*chr = 'K';break;case 'Y':*chr = 'L';break;case 'Z':*chr = 'M';break;}
}
总结
出这道题的老师挺有水平.
2023-04-29 C语言二进制读写库
压缩算法需要二进制读写库, 根据算法第四版重构C语言版. 可进行逐位读写, 主要用于数据压缩.
一、代码
#ifndef BINSTDIO
#define BINSTDIO#include <assert.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>#ifdef _WIN64
#include <fcntl.h>
#include <io.h>
#endif// 读流到缓冲区
void binIO_fillBuffer();// 比特流是否为空
bool binIO_isEmpty();// 读取1位数据并返回一个bool值
bool binIO_readBool(bool *bit);// 读取8位数据并返回一个char值
bool binIO_readChar(unsigned char *chr);// 读取r(1~8)位数据并返回一个char值
bool binIO_readCharBit(unsigned char *chr, int bitSize);// 读取int16值
bool binIO_readShort(uint16_t *num);// 读取r(1~BUFSIZE_X_2)位数据并返回一个int16值
bool binIO_readShortBit(uint16_t *num, int bitSize);// 读取int值
bool binIO_readInt(uint32_t *num);// 读取r(1~32)位数据并返回一个int值
bool binIO_readIntBit(uint32_t *num, int bitSize);// 读取int64
bool binIO_readInt64(uint64_t *num);// 读取r(1~32)位数据并返回一个int值
bool binIO_readInt64Bit(uint64_t *num, int bitSize);// 关闭比特流
void binIO_close();// 恢复流状态
void binIO_clear();// 写入指定的比特
void binIO_writeBool(bool bit);// 写入指定的8位字符
void binIO_writeChar(unsigned char chr);// 写入指定字符的r(1~8)位
void binIO_writeCharBit(unsigned char chr, int bitSize);// 写入int16值
void binIO_writeShort(uint16_t num);// 写入 int16 值, bitSize 在范围 [1, BUFSIZE_X_2]
void binIO_writeShortBit(uint16_t num, int bitSize);// 写入int值
void binIO_writeInt(uint32_t num);// 写入指定 int 的 bitSize [1, 32] 位
void binIO_writeIntBit(uint32_t num, int bitSize);// 写入int64类型值
void binIO_writeInt64(uint64_t num);// 写入指定 int64 的 bitSize [1, 64] 位
void binIO_writeInt64Bit(相关文章:
自己的碎碎念集合
自己的碎碎念集合 2023-09-07 c++叠加三目运算符闰年计算法2023-08-13 一个小题目 A+B problem一、问题及解答关碍总结2023-07-26 C的2至36进制转换函数一、itoa()函数的示例代码总结2023-07-19 平面坐标下判断三角形以及输出周长和面积一. 基本知识总结2023-06-25 达芬奇去除白…...
暂定名「码道功成:Coder启示录」
听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,现任研发部门 CTO 。荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计…...
Apache HTTPD (CVE-2017-15715)换行解析漏洞复现
Apache HTTPD 换行解析漏洞 CVE-2017-15715漏洞简介 组件版本漏洞名称 Apache HTTPD 换行解析漏洞(CVE-2017-15715) 漏洞描述 Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞&…...
Spring Boot集成JasperReport生成文档
由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲染生成PDF文档。 一、使用Ireport designer 5.6设计模板 ireport的使用由于时间关系不便多…...
02-Tomcat打破双亲委派机制
上一篇:01-从JDK源码级别剖析JVM类加载机制 Tomcat 如果使用默认的双亲委派类加载机制行不行? 我们思考一下:Tomcat是个web容器, 那么它要解决什么问题: 一个web容器可能需要部署两个应用程序,不同的应用…...
怎么理解flink的异步检查点机制
背景 flink的checkpoint监控页面那里有两个指标Sync Duration 和Async Duration,一个是开始进行同步checkpoint所需的时间,一个是异步checkpoint过程所需的时间,你是否也有过疑惑,是否只是同步过程中的时间才会阻塞正常的数据处理…...
SpringMVC <url-pattern/>解读
1. < url-pattern/>的值 (1).使用拓展名的方式,语法*.xxx,xxx是自定义的拓展名,常用的方式*.do,*.action,不能使用*.jsp. (2).使用斜杠 "/"当项目中使用了 / ,他会替代tomcat中的default。导致所有的…...
大学毕业设计的益处:培养实践能力、深入专业领域、展示自信与建立联系
大学生做毕业设计有许多好处,以下是一些主要的原因和好处: 实践应用能力:毕业设计通常需要学生将所学的知识和技能应用到一个具体的项目中,这有助于他们将理论知识转化为实际应用能力。 独立思考和解决问题:毕业设计要…...
ChatGPT:概述Vue.js中data函数初始化和created钩子函数调用的顺序和问题解决方法
ChatGPT:概述Vue.js中data函数初始化和created钩子函数调用的顺序和问题解决方法 我将输入一段Vue代码,请你记住: created() {console.log(this.queryInfo)this.getClueList();},data() {return {allQueryInfo: {str: ,//线索标题查询信息},/…...
SpringBoot【基础篇】
一、快速上手 按照要求,左侧选择web,然后在中间选择Spring Web即可,选完右侧就出现了新的内容项,这就表示勾选成功了 关注:此处选择的SpringBoot的版本使用默认的就可以了,需要说一点,SpringBo…...
Vuex - state 状态(获取和使用共享数据)
文章目录 一、state是什么?二、state状态的作用三、如何使用store数据呢?使用数据的两种方式:1. 通过store 直接访问2. 通过辅助函数访问(简化) 一、state是什么? state是状态(数据) , 类似于v…...
tcp连接+套接字编程
tcp头部 tcp端口号 TCP的连接是需要四个要素确定唯一一个连接:(源IP,源端口号) (目地IP,目的端口号) 所以TCP首部预留了两个16位作为端口号的存储,而IP地址由上一层IP协议负责传递 源…...
OpenCV(三十四):轮廓外接最大、最小矩形和多边形拟合
目录 1.轮廓外接最大矩形boundingRect() 2.轮廓外接最小矩形minAreaRect() 3.轮廓外接多边形approxPolyDP() 1.轮廓外接最大矩形boundingRect() Rect cv::boundingRect ( InputArray array ) array:输入的灰度图像或者2D点集,数据类型为vector<Point>或者M…...
Kafka3.0.0版本——消费者(offset的默认维护位置)
目录 一、offset的默认维护位置1.1、offset的默认维护位置概述1.2、offset的默认维护位置图解 二、消费者offset的案例 一、offset的默认维护位置 1.1、offset的默认维护位置概述 Kafka0.9版本之前,consumer默认将offset保存在Zookeeper中。从Kafka0.9版本开始&am…...
Wireshark技巧[监听串口包]
监听串口包 本文摘录于:https://blog.csdn.net/qq_20405005/article/details/79652927只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 这里要保证安装了USBpcap: 打开USBpcap后一半都要输入过滤条件,否则USB太多数据了,比如…...
安全运营中心即服务提供商评估
如果组织当前没有自己的安全运营中心(SOC),那么可能需要考虑如何在不从头开始构建的情况下获得安全运营中心(SOC)。自己构建安全运营中心(SOC)的费用可能会非常昂贵,考虑到工作人员全天候运营的配置成本,就更是如此。在过去几年中,…...
算法通关村第十三关——幂运算问题解析
前言 幂运算为常见的数学运算,形式为 a b a^b ab ,其中a为底数,b为指数, 力扣中,幂运算相关的问题主要是判断一个数是不是特定正整数的整数次幂,以及快速幂的处理。 1.求2的幂 力扣231题,给…...
Python 之使用Numpy库来加载Numpy(.npy)文件并检查其内容
文章目录 总的介绍data.dtypedata.shapedata.ndimdata.size 总的介绍 要判断一个Numpy(.npy)文件的数据集类型,你可以使用Python中的Numpy库来加载该文件并检查其内容。以下是一些常见的步骤: 导入Numpy库: 首先&…...
C#学习系列之UDP同端口收发问题
C#学习系列之UDP同端口收发问题 前言解决办法关于JoinMulticastGroup总结 前言 想测试自己的程序问题,建立了两个UDP程序,一个往端口中接到数就传出去,另一个从这个端口接数据来解析。 出现的问题是 每次打开端口,另一个程序就无…...
SpringMVC之文件上传下载以及jrebel的使用
目录 一、文件上传 1.1 导入依赖 1.2 配置文件上传解析器 1.3 配置服务器存放文件地址 1.3.1 点击编辑Configurations 1.3.2 将项目部署至tomcat服务器上 1.3.3 配置相对路径 1.4 导入PropertiesUtil工具类 1.5 编写resource.properties 1.6 添加sql 1.7 编写PageCo…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
