自己的碎碎念集合

news2024/12/23 0:46:04

自己的碎碎念集合

  • 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-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
    // RETURN
    while (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;
    }
}


总结

出这道题的老师挺有水平.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

认识伦敦银的真相,并没有那么容易

我们进行伦敦银投资&#xff0c;其实就是想利用一定的时间在这个市场中获取盈利。对于普通人来说&#xff0c;我们获得金钱的方法就是从事一份工作努力的&#xff0c;在这个职位中&#xff0c;做好自己的本职工作&#xff0c;最后老板为我们的辛勤付出&#xff0c;支付相应的工…

快速构建基于Paddle Serving部署的Paddle Detection目标检测Docker镜像

快速构建基于Paddle Serving部署的Paddle Detection目标检测Docker镜像 项目介绍需要重点关注的几个文件构建cpu版本的docker构建gpu版本的docker&#xff08;cuda11.2cudnn8&#xff09; 阅读提示&#xff1a; &#xff08;1&#xff09;Paddle的Serving项目中&#xff0c;在t…

OpenCV 06(图像的基本变换)

一、图像的基本变换 1.1 图像的放大与缩小 - resize(src, dsize, dst, fx, fy, interpolation) - src: 要缩放的图片 - dsize: 缩放之后的图片大小, 元组和列表表示均可. - dst: 可选参数, 缩放之后的输出图片 - fx, fy: x轴和y轴的缩放比, 即宽度和高度的缩放比. - …

【React学习】React高级特性

1. 函数式组件和类组件区别 函数式组件 函数式组件是一种简单的组件定义方式&#xff0c;它是一个以JavaScript函数为基础的组件。 可以把函数式组件理解为纯函数&#xff0c;它的输入为props&#xff0c;输出为JSX。函数式组件没有状态&#xff0c;也没有生命周期。 functio…

java特殊文件 属性文件properties和XML文件

属性文件properties 后缀为.properties的文件&#xff0c;称之为属性文件&#xff0c;它可以很方便的存储一些类似于键值对的数据。经常当做软件的配置文件使用。 首先我们要掌握属性文件的格式&#xff1a; 1.属性文件后缀以.properties结尾 2.属性文件里面的每一行都是一个…

Python Opencv实践 - Shi-Tomasi角点检测

参考资料&#xff1a;Harris和Shi-tomasi角点检测笔记&#xff08;详细推导&#xff09;_harris焦点检测_亦枫Leonlew的博客-CSDN博客 cv.goodFeaturesToTrack&#xff1a;Shi-Tomasi角点检测-OpenCV-python_独憩的博客-CSDN博客 import cv2 as cv import numpy as np import …

精准定位,智慧港口:北斗技术在港口车辆智能监管中的应用

随着全球经济一体化的加速推进&#xff0c;港口作为全球物流网络中的关键节点、对外贸易货物的集散中心以及国际物流供应链的重要组成部分&#xff0c;其在区域经济发展中的作用变得越来越重要。然而&#xff0c;随着港口向大型化、专业化方向的发展&#xff0c;现有的基础设施…

基于Java+SpringBoot+UniApp的微信小程序朋友圈

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着社交媒体的兴起和…

在UE4虚幻引擎中加入导航网格体边界体积后丧尸不能移动和发现玩家

UE4系列文章目录 文章目录 UE4系列文章目录前言一、用到的知识点二、问题原因 前言 最近使用ue4做第一人称视角射击游戏发现问题&#xff0c;加入导航网格体边界体积后丧尸不能移动和发现玩家。下图是出现的问题图片 一、用到的知识点 1.行为树&#xff1a;控制并显示AI的决…

【后端面经-数据库】Redis数据结构和底层数据类型

【后端面经-数据库】Redis数据结构和底层数据类型 1. Redis数据类型1.1 基本数据类型1. string2. hash3. list4. set5. sortset/Zset 1.2 特殊数据类型1. bitmap2. hyperloglog3. GEO4. stream 2. Redis底层数据类型2.1 简介2.2 动态字符串SDS2.3 快表QuickList2.4 字典Dict2.5…

论文解读 | 基于中心的三维对象检测与跟踪

原创 | 文 BFT机器人 CenterPoint与传统基于框的3D物体检测器和跟踪器不同之处在于&#xff0c;它将3D物体表示、检测和跟踪为点&#xff0c;而不是使用边界框。这种方法具有几个优点&#xff0c;包括减少物体检测器的搜索空间&#xff0c;简化下游任务&#xff08;如跟踪&…

一键去除文件名中的空格,轻松解决文件命名烦恼!

你是否曾经为文件名中的空格而烦恼&#xff1f;这些空格可能会在传输、存储和搜索文件时带来各种问题。为了解决这个问题&#xff0c;本文将向你介绍几种实用的方法&#xff0c;让你轻松去除文件名中的空格&#xff0c;让文件命名变得更加简单&#xff01; 首先&#xff0c;我…

MAC终端美化

先看看效果&#xff1a; 1.安装on-my-zsh 打开终端&#xff0c;输出&#xff1a; sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"安装过程中如果出现了链接超时的错误&#xff0c;不要慌&#xff0c;就再来一次&#x…

牛客网——BM62 斐波那契数列

class Solution { public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param n int整型 * return int整型*/int Fibonacci(int n) {// write code hereif(n0) //考虑第0项return 0;else if(n1||n2)return 1;else…

人大加拿大女王大学金融硕士项目——自律是实现目标和成功的桥梁

低级的欲望通过放纵就能得到&#xff0c;高级的欲望通过自律才能得到。在这个快速发展的时代&#xff0c;只有保持自律&#xff0c;不断的充实自己&#xff0c;提升自己&#xff0c;才不会被社会所淘汰。中国人民大学与加拿大女王大学金融硕士项目&#xff0c;汇集了金融业的精…

EPICS asyn诊断帮助

iocsh命令 asynReport(level,portName) asynInterposeFlushConfig(portName,addr,timeout) asynInterposeEosConfig(portName,addr,processIn,processOut) asynSetTraceMask(portName,addr,mask) asynSetTraceIOMask(portName,addr,mask) asynSetTraceInfoMask(portName,addr…

Greenplum执行SQL卡住的问题

问题 今天社区群里面一位同学反映他的SQL语句执行会hang住&#xff0c;执行截图如下。 分析 根据提示信息&#xff0c;判断可能是网络有问题&#xff0c;或者是跟GP使用UDP包有关系。 此同学找了网络检查的人确定网络没有问题&#xff0c;于是猜测跟UDP包有关。 参考文章ht…

合宙Air724UG LuatOS-Air LVGL API控件-窗口 (Window)

窗口 (Window) 分 享导出pdf 示例代码 win lvgl.win_create(lvgl.scr_act(), nil) lvgl.win_set_title(win, "Window title") -- close_btn lvgl.win_add_btn_right(win, "\xef\x80\x8d") -- --lvgl.obj_set_event_cb(cl…

企业架构LNMP学习笔记23

1、隐藏版本号&#xff1a; Nginx对外提供服务&#xff0c;为了避免被针对某个版本的漏洞进行攻击。经常做法是隐藏掉软件的版本信息&#xff0c;提供一定的安全性。 server_tokens off; https和CA&#xff1a; 1&#xff09;基于SSL CA证书的公私钥的安全性。 CA是需要生成…

pip安装skimage的方法

在安装skimage时&#xff0c;可能会报错误&#xff1a; 可以尝试&#xff1a;pip install scikit-image进行安装&#xff0c;使用时只需要&#xff1a;import skimage