自己的碎碎念集合

自己的碎碎念集合

  • 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然后一张一张换, 实在是太费劲了.

于是想到这点小玩意达芬奇这么专业的软件一定有办法, 试了试, 还真行


一、具体步骤

  1. 进入调色界面
  2. 将所有片段选中, 鼠标右键, 添加到当前群组
  3. 在节点区域, 选择片段前群组
  4. 在下方的调整区, 选择窗口, 四边形, 调整大小和位置, 将水印覆盖
  5. 调色区选一级校色条, 亮部的亮度拉满, 水印消失

具体步骤


总结

没有用到收费的功能, 但只能用于白底或黑底之上的水印, 不是智能去除.

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(

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

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

相关文章

Android 大图显示优化方案-加载Gif 自定义解码器

基于Glide做了图片显示的优化&#xff0c;尤其是加载Gif图的优化&#xff0c;原生Glide加载Gif图性能较低。在原生基础上做了自定义解码器的优化&#xff0c;提升Glide性能 Glide加载大图和Gif 尤其是列表存在gif时&#xff0c;会有明显卡顿&#xff0c;cpu和内存占用较高&…

【RabbitMQ】介绍及消息收发流程

介绍 RabbitMQ 是实现 AMQP&#xff08;高级消息队列协议&#xff09;的消息中间件的一种&#xff0c;最初起源于金融系统&#xff0c;用于在分布式系统中存储转发消息&#xff0c;在易用性、扩展性、高可用性等方面表现不俗。 RabbitMQ 主要是为了实现系统之间的双向解耦而实…

LeetCode 138. Copy List with Random Pointer【链表,DFS,迭代,哈希表】中等

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

CSS笔记(黑马程序员pink老师前端)圆角边框

圆角边框 border-radius:length; 效果显示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Documen…

[杂谈]-2023年实现M2M的技术有哪些?

2023年实现M2M的技术有哪些&#xff1f; 文章目录 2023年实现M2M的技术有哪些&#xff1f;1、寻找连接2、M2M与IoT3、流行的 M2M 协议 在当今的数字世界中&#xff0c;机器对机器 (M2M) 正在迅速成为标准。 M2M 包括使联网设备能够交换数据或信息的任何技术。 它可以是有线或无…

springboot整合elasticsearch使用案例

引入依赖 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId> </dependency> 添加注入 import org.apache.http.HttpHost; import org.elasticsearch.client.Res…

项目(智慧教室)第四部分,页面交互功能,WebServer建立与使用,

一。页面构思 1.标题栏 大标题&#xff1a;智慧教室管理系统 小标题&#xff1a;灯光&#xff0c;报警&#xff0c;风扇&#xff0c;温度&#xff0c;湿度&#xff0c;光照 2.样式设计 背景设置。字体设置&#xff08;字体大小&#xff0c;格式&#xff0c;颜色&#xff09; 3.…

【人月神话】深入了解软件工程和项目管理

文章目录 &#x1f468;‍⚖️《人月神话》的主要观点&#x1f468;‍&#x1f3eb;《人月神话》的主要内容&#x1f468;‍&#x1f4bb;作者介绍 &#x1f338;&#x1f338;&#x1f338;&#x1f337;&#x1f337;&#x1f337;&#x1f490;&#x1f490;&#x1f490;&a…

oracle将一个用户的表复制到另一个用户

注&#xff1a;scott用户和scott用户下的源表&#xff08;EMP&#xff09;本身就有&#xff0c;无需另行创建。 GRANT SELECT ON SCOTT.emp TO BI_ODSCREATE TABLE ODS_EMP AS SELECT * FROM SCOTT.emphttp://www.bxcqd.com/news/77615.html SQL语句查询要修改密码的用户…

通过Siri打造智能爬虫助手:捕获与解析结构化数据

在信息时代&#xff0c;我们经常需要从互联网上获取大量的结构化数据。然而&#xff0c;传统的网络爬虫往往需要编写复杂代码和规则来实现数据采集和解析。如今&#xff0c;在苹果公司提供的语音助手Siri中有一个强大功能可以帮助我们轻松完成这项任务——通过使用自定义指令、…

OpenCV 05(图像的算术与位运算)

一、图像的算术运算 1.1 图像的加法运算 - add opencv使用add来执行图像的加法运算 图片就是矩阵, 图片的加法运算就是矩阵的加法运算, 这就要求加法运算的两张图shape必须是相同的. import cv2 import numpy as npcat cv2.imread(D:\\3-project\\zyj\\pythonCNN\\pic\\c…

libbpf-bootstrap安卓aarch64适配交叉编译

1.为什么移植 疑惑 起初我也认为&#xff0c;像libbpf-bootstrap这样在ebpf程序开发中很常用的框架&#xff0c;理应支持不同架构的交叉编译。尤其是向内核态的ebpf程序本身就是直接通过clang的-target btf直接生成字节码&#xff0c;各个内核上的ebpf虚拟机大同小异&#xf…

音频——I2S DSP 模式(五)

I2S 基本概念飞利浦(I2S)标准模式左(MSB)对齐标准模式右(LSB)对齐标准模式DSP 模式TDM 模式 文章目录 DSP formatDSP A时序图逻辑分析仪抓包 DSP B时序图逻辑分析仪抓包 DSP format DSP/PCMmode 分为 Mode-A 和 Mode-B 共 2 种模式。不同芯⽚有的称为 PCM mode 有的称为 DSP m…

UG二次开发 向量叉乘 UF_VEC3_cross

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: UG二次开发 向量叉乘 UF_VEC3_cross,xyz三个向量已知2个求另外1个。 效果: 代码: #include "me.hpp"void ufusr(char* param, int* retcode, int paramLe…

数据结构与算法学习(day4)——解决实际问题

前言 在本章的学习此前&#xff0c;需要复习前三章的内容&#xff0c;每个算法都动手敲一遍解题。宁愿学慢一点&#xff0c;也要对每个算法掌握基本的理解&#xff01; 前面我们学习了简化版桶排序、冒泡排序和快速排序三种算法&#xff0c;今天我们来实践一下前面的三种算法。…

C# OpenVinoSharp PP-TinyPose 人体姿态识别

效果 项目 部分代码 using OpenCvSharp; using OpenCvSharp.Extensions; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;name…

机器学习——支持向量机(SVM)

机器学习——支持向量机&#xff08;SVM&#xff09; 文章目录 前言一、SVM算法原理1.1. SVM介绍1.2. 核函数&#xff08;Kernel&#xff09;介绍1.3. 算法和核函数的选择1.4. 算法步骤1.5. 分类和回归的选择 二、代码实现&#xff08;SVM&#xff09;1. SVR&#xff08;回归&a…

【矩阵分解】PCA - 主成分分析中的数学原理

前言 本文主要对PCA主成分分析中的数学原理进行介绍&#xff0c;将不涉及或很少涉及代码实现或应用&#xff0c;阅读前请确保已了解基本的机器学习相关知识。 文章概述 PCA主成分分析属于矩阵分解算法中的入门算法&#xff0c;通过分解特征矩阵来实现降维。 本文主要内容&a…

硬件学习件Cadence day13 PCB设计中一些设置, 铜皮到钻孔的距离设置, 差分线的设置,板层信息表

1. 设置铺铜中铜皮到钻口&#xff0c;连线的距离。 1. 打开设置界面 2. 设计界面 调整到 铜皮设置界面 2. 高速线的设置 &#xff08;差分对传输线的设置&#xff09; 1. 打开设置界面 2. 来到 差分线设置界面 3. 把界面往右看&#xff0c; 设置差分线的之间距离&#xff0c;…

(二十四)大数据实战——Flume数据流监控之Ganglia的安装与部署

前言 本节内容我们主要介绍一下Flume数据流的监控工具Ganglia。Ganglia是一个开源的分布式系统性能监控工具。它被设计用于监视大规模的计算机群集&#xff08;包括集群、网格和云环境&#xff09;&#xff0c;以便收集和展示系统和应用程序的性能数据。Ganglia 可以轻松地扩展…