当前位置: 首页 > article >正文

【NOI】C++程序结构入门之循环结构三-计数求和

文章目录

  • 前言
  • 一、计数求和
    • 1.导入
    • 2.计数器
    • 3.累加器
  • 二、例题讲解
    • 问题:1741 - 求出1~n中满足条件的数的个数和总和?
    • 问题:1002. 编程求解1+2+3+...+n
    • 问题:1004. 编程求1 * 2 * 3*...*n
    • 问题:1014. 编程求1+1/2+1/3+...+1/n
    • 问题:1056. 所有不超过1000的数中含有数字3的自然数
    • 问题:1055. 求满足条件的整数个数
    • 问题:1393. 与7无关的数?
  • 三、总结
  • 四、感谢


前言

在C++编程的学习过程中,循环结构是一个非常重要的概念。通过前两节的学习,我们已经掌握了while循环和for循环的基本使用方法,并且学会了如何利用这些循环来输出一组符合条件的数。然而,在实际应用中,仅仅输出这些数是不够的。很多时候我们需要进一步处理这些数据,例如统计出符合条件的数的数量以及计算它们的总和。这就是本章节的重点——循环计数求和。我们将深入探讨如何使用计数器和累加器来实现这一目标,并通过具体的实例帮助大家更好地理解和掌握这些技巧。

学习路线:C++从入门到NOI学习路线

学习大纲:C++全国青少年信息学奥林匹克竞赛(NOI)入门级-大纲


一、计数求和

1.导入

在前两节中,我们学习了两种不同的循环结构——while循环和for循环。

并学会了在一组数字中,如何输出多个符合条件的数。

在这里插入图片描述

让你统计出这些符合条件的数的数量是多少?并且计算出它们的你会吗?

这就是我们今天需要学习处理的问题——循环计数求和。

2.计数器

首先我们需要知道一个关于计数器的概念,什么是计数器?

计数器用于跟踪循环执行的次数或某些事件发生的频率。它通常从一个初始值开始,在每次满足特定条件时递增或递减。

哇,好复杂,感觉要长脑子了QAQ

在这里插入图片描述

其实并没有那么复杂,大家可以想想比赛用的计时器。
在这里插入图片描述

当按下开始键,时间每过去一秒,计时器就会加1。同理,在我们程序里面,当满足条件时,我们也将计数器+1。

示例

int c=0	//定义一个计数器,并初始化为0
for(int i=1;i<=20;++i){	//循环1-20的数if(i%2==0){	//判断当前数是否是偶数++c;	//如何是偶数,则将计数器+1}
}

上面代码中就演示了如何统计1-20中偶数的数量。

看见没,就是这样简单。

3.累加器

接下来,让我们来了解一下求和的部分。

累加器用来累积一系列数值的总和。在每次迭代中,将当前数值添加到累加器中,从而实现对多个数值的求和。

说到这里,大家脑子里面肯定想到了计算器这个东西。

在这里插入图片描述

没错,我们的累加器基于相当于是一个会自己按的计算器。当然这里的累加器也可以包括加减乘除等一系列操作,只是一般用来求和而已。

示例

int sum=0	//定义一个累加器,并初始化为0
for(int i=1;i<=20;++i){	//循环1-20的数sum+=i; //累计计算1-20的和
}

依然是一段很简单的代码,循环1-20的每一个数,然后将它们累计相加。

但这里有的人可能会有一点小问题。

1.问题一:sum+=i是什么意思?

  • 在C++编程中,sum += i; 是一种简洁的写法,用来表示将变量 i 的值加到变量 sum 上,并将结果存回 sum 中。这实际上是一个复合赋值操作符的例子,它结合了加法运算和赋值操作。
  • sum += i 可以理解为 sum = sum + i。

2.问题二:为什么sum=sum+i就是累加?

  • 模拟计算器过程:想象你正在使用一个计算器来连续相加几个数字。每次你输入一个新的数并按下“等于”键时,计算器会显示当前所有已输入数值的总和。
  • 累加器的角色:在这个过程中,sum 就像是计算器上的显示屏,它保存了到目前为止所有已添加数值的总和。而 i 则代表当前要加入的新值。
  • 每一步的更新:在语句 sum = sum + i; 中,右边的 sum 表示的是上一次累加后的结果(也就是当前的总和),而 + i 是指现在要加到总和上去的新值。执行这行代码之后,新的总和就会被计算出来,并通过赋值操作(=)更新到左边的 sum 变量中。
  • 循环中的累加:当这条语句位于一个循环体内时,随着循环的每一次迭代,i 的值会发生变化,代表着不同的新值。每次执行 sum = sum + i; 都是在前一次总和的基础上再加上新的值,从而实现了累加的效果。最终,sum 将包含所有数值的总和。

二、例题讲解

问题:1741 - 求出1~n中满足条件的数的个数和总和?

类型:简单循环


题目描述:

请求出 1∼n 之间所有满足 2 的倍数但不是 3 的倍数的数,有多少个,总和是多少?

输入:

读入一个整数 n(n≤100000) 。

输出:

输出有 2 行,每行 1 个整数;
第 1 行输出满足条件的数有几个;
第 2 行输出满足条件的数的总和。

样例:

输入:

10

输出:

4
24

1.分析问题

  1. 已知:给定一个整数n;
  2. 未知:找出1到n之间所有满足既是2的倍数但又不是3的倍数的数。需要计算满足条件的数的总数(记为c)以及这些数的总和(记为s)。

2.定义变量

  • n为输入值,count记录满足条件的数的数量,sum记录这些数的总和。
 // 二、数据定义int n, count = 0, sum = 0;

3.输入数据

  • 从用户处获取整数n的值。
    // 三、数据输入cin >> n; 

4.数据计算

  • 从2开始,每次递增2(确保是2的倍数),直到n(包含n)。
  • 检查当前数i是否不是3的倍数。
  • 如果i不是3的倍数,则计数加1,并将其累加到总和中
    // 四、数据处理与计算for (int i = 2; i <= n; i += 2) {if (i % 3 != 0) {count++; // 或者使用 ++countsum += i;}}

5.输出结果

  • 输出满足条件的数的总数和总和,中间用换行符分隔
    cout << count << endl << sum;

完整代码如下:

#include <bits/stdc++.h> // 包含常用的C++库函数
using namespace std; // 使用std命名空间,简化对标准库函数的调用int main() {// 一、问题分析// 给定一个整数n,找出1到n之间所有满足既是2的倍数但又不是3的倍数的数。// 需要计算满足条件的数的总数(记为c)以及这些数的总和(记为s)。// 二、数据定义int n, count = 0, sum = 0; // n为输入值,count记录满足条件的数的数量,sum记录这些数的总和// 三、数据输入cin >> n; // 从用户处获取整数n的值// 四、数据处理与计算// 从2开始,每次递增2(确保是2的倍数),直到n(包含n)for (int i = 2; i <= n; i += 2) {// 检查当前数i是否不是3的倍数if (i % 3 != 0) {// 如果i不是3的倍数,则计数加1,并将其累加到总和中count++; // 或者使用 ++countsum += i;}}// 五、输出结果// 输出满足条件的数的总数和总和,中间用换行符分隔cout << count << endl << sum;return 0; // 程序执行成功,返回0
}

欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》

问题:1002. 编程求解1+2+3+…+n

类型:简单循环


题目描述:

编程求解下列式子的值: S=1+2+3+⋯+n。

输入:

输入一行,只有一个整数 n(1≤n≤1000) 。

输出:

输出只有一行(这意味着末尾有一个回车符号),包括 1 个整数。

样例:

输入:

100

输出:

5050

1.分析问题

  1. 已知:一个整数n;
  2. 未知:计算出1-n中所有数的和;
  3. 关系:计数求和。

2.定义变量

  • n - 存储用户输入的上限;
  • sum - 累加器,初始化为0,用来累计从1到n的整数之和。
int n,sum=0; 

3.输入数据

  • 输入整数n。
cin>>n;

4.数据计算

  • 开始一个循环,从1遍历到n(包括n)。
  • 在每次循环中,将当前的i累加到sum中。
for(int i=1;i<=n;i++){sum+=i;
}

5.输出

  • 输出结果sum。
cout << sum << endl;

完整代码如下:

#include<bits/stdc++.h>  // 包含了C++标准库中的所有头文件,方便快捷但不推荐用于实际项目中。
using namespace std;     // 使用std命名空间,避免每次使用标准库元素时都得加上std::前缀。int main(){              // 定义主函数,程序从这里开始执行。//一、分析问题//已知:整数n。//未知:前n项和。//关系:累加。//二、数据定义 int n, sum = 0;      // 定义两个整型变量:// n - 存储用户输入的上限;// sum - 累加器,初始化为0,用来累计从1到n的整数之和。//三、数据输入cin >> n;            // 从标准输入读取一个整数n,表示累加的上限。//四、数据计算 for(int i = 1; i <= n; ++i){  // 开始一个循环,从1遍历到n(包括n)。sum += i;                 // 在每次循环中,将当前的i累加到sum中。}//五、输出结果cout << sum << endl;          // 输出累加的结果,并换行。return 0;                     // 主函数结束,返回0给操作系统,表示程序正常结束。
}

欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》

问题:1004. 编程求1 * 2 * 3*…*n

类型:简单循环


题目描述:

编程求 1×2×3×⋯×n 。

输入:

输入一行,只有一个整数 n(1≤n≤10);

输出:

输出只有一行(这意味着末尾有一个回车符号),包括 1 个整数。

样例:

输入:

5

输出:

120

1.分析问题

  1. 已知:一个整数n;
  2. 未知:编程求 n的阶乘。
  3. 关系:n 的阶乘定义为从 1 到 n 所有整数的乘积,表示为 n! = 1 * 2 * … * n。

2.定义变量

定义两个整型变量:

  • n - 存储用户输入的整数;
  • r - 累乘器,初始化为1,用来累计从1到n的整数乘积。
int n,r=1;

3.输入数据

  • 读取一个整数n,表示要计算阶乘的数。
cin>>n;

4.数据计算

  • 开始一个循环,从1遍历到n(包括n)。
  • 在每次循环中,将当前的i与累乘器r相乘,并更新r。
for(int i=1;i<=n;++i){r*=i;
}

5.输出

  • 输出累乘的结果,即n的阶乘。
cout<<r;

完整代码如下:

#include<bits/stdc++.h>  // 包含了C++标准库中的所有头文件,方便快捷但不推荐用于实际项目中。
using namespace std;     // 使用std命名空间,避免每次使用标准库元素时都得加上std::前缀。int main(){              // 定义主函数,程序从这里开始执行。//一、分析问题//已知:一个整数n //未知:编程求 n的阶乘。//关系:n 的阶乘定义为从 1 到 n 所有整数的乘积,表示为 n! = 1 * 2 * ... * n。//二、数据定义int n, r = 1;        // 定义两个整型变量:// n - 存储用户输入的整数;// r - 累乘器,初始化为1,用来累计从1到n的整数乘积。//三、数据输入cin >> n;            // 从标准输入读取一个整数n,表示要计算阶乘的数。//四、数据计算for(int i = 1; i <= n; ++i){  // 开始一个循环,从1遍历到n(包括n)。r *= i;                   // 在每次循环中,将当前的i与累乘器r相乘,并更新r。}//五、输出结果cout << r;                    // 输出累乘的结果,即n的阶乘。return 0;                     // 主函数结束,返回0给操作系统,表示程序正常结束。
}

欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》

问题:1014. 编程求1+1/2+1/3+…+1/n

类型:简单循环


题目描述:

编程求 1+1/2+1/3+⋯+1/n 。

输入:

输入一行,只有一个整数 n(1≤n≤200) 。

输出:

输出只有一行(这意味着末尾有一个回车符号),包括 1 个实数。(保留 3 位小数) 。

样例:

输入:

5

输出:

2.283

1.分析问题

  1. 已知:一个整数n;
  2. 未知:编程求1+1/2+1/3+…+1/n;
  3. 关系:调和级数求和,即求从1到n分之一的所有项之和。

2.定义变量

  • 定义一个整型变量n,用来存储用户输入的上限。
  • 定义一个双精度浮点型变量r,初始化为0,用来累计调和级数的和。
int n;
double r=0;

3.输入数据

  • 读取一个整数n,表示求和的上限。
cin>>n;

4.数据计算

  • 开始一个循环,从1遍历到n(包括n)。
  • 在每次循环中,将当前项1/i累加到r中。
  • 注意使用1.0以确保除法是浮点数除法,而不是整数除法。
for(int i=1;i<=n;++i){r+=1.0/i;
}

5.输出

  • 输出累加的结果,设置输出格式为固定小数点形式,并保留三位小数。
cout<<fixed<<setprecision(3)<<r;

完整代码如下:

#include<bits/stdc++.h>  // 包含了C++标准库中的所有头文件,方便快捷但不推荐用于实际项目中。
using namespace std;     // 使用std命名空间,避免每次使用标准库元素时都得加上std::前缀。int main(){              // 定义主函数,程序从这里开始执行。//一、分析问题//已知:一个整数n;//未知:编程求1+1/2+1/3+...+1/n//关系:调和级数求和,即求从1到n分之一的所有项之和。//二、数据定义int n;               // 定义一个整型变量n,用来存储用户输入的上限。double r = 0;        // 定义一个双精度浮点型变量r,初始化为0,用来累计调和级数的和。//三、数据输入cin >> n;            // 从标准输入读取一个整数n,表示求和的上限。//四、数据计算for(int i = 1; i <= n; ++i){  // 开始一个循环,从1遍历到n(包括n)。r += 1.0 / i;             // 在每次循环中,将当前项1/i累加到r中。// 注意使用1.0以确保除法是浮点数除法,而不是整数除法。}//五、输出结果cout << fixed << setprecision(3) << r;  // 输出累加的结果,设置输出格式为固定小数点形式,并保留三位小数。return 0;                               // 主函数结束,返回0给操作系统,表示程序正常结束。
}

欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》

问题:1056. 所有不超过1000的数中含有数字3的自然数

类型:简单循环


题目描述:

编程求出所有不超过 1000 的数中,含有数字 3 的自然数,并统计总数。

输入:

无。

输出:

输出只有一行(这意味着末尾有一个回车符号),包括 1 个整数。

样例:

输入:


输出:



1.分析问题

  1. 已知:无输入,直接处理范围内的数。
  2. 未知:求出所有不超过 1000 的数中,含有数字 3 的自然数,并统计总数。
  3. 关系:通过拆分每一位数字来检查是否包含数字3。

2.定义变量

  • 定义一个整型变量c,初始化为0,用来累计包含数字3的数的数量。
int c=0;

3.输入数据

无。

4.数据计算

  • 开始一个循环,从1遍历到999(包括999)。
  • 检查当前数i的每一位是否包含数字3。
  • 如果包含,则将计数器c加1。
for(int i=3;i<1000;++i){if(i%10==3||i/10%10==3||i/100==3) ++c;		
}

5.输出

  • 输出包含数字3的数的总数。
cout<<c;

完整代码如下:

#include<bits/stdc++.h>  // 包含了C++标准库中的所有头文件,方便快捷但不推荐用于实际项目中。
using namespace std;     // 使用std命名空间,避免每次使用标准库元素时都得加上std::前缀。int main(){              // 定义主函数,程序从这里开始执行。//一、分析问题//已知:无输入,直接处理范围内的数。//未知:求出所有不超过 1000 的数中,含有数字 3 的自然数,并统计总数。//关系:通过拆分每一位数字来检查是否包含数字3。//二、数据定义int c = 0;           // 定义一个整型变量c,初始化为0,用来累计包含数字3的数的数量。//三、数据输入// 无需用户输入,直接在代码中处理1到999的所有数。//四、数据计算for(int i = 1; i < 1000; ++i){  // 开始一个循环,从1遍历到999(包括999)。if(i % 10 == 3 || i / 10 % 10 == 3 || i / 100 == 3) {  // 检查当前数i的每一位是否包含数字3。++c;                                               // 如果包含,则将计数器c加1。}}//五、输出结果cout << c;                    // 输出包含数字3的数的总数。return 0;                     // 主函数结束,返回0给操作系统,表示程序正常结束。
}

欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》

问题:1055. 求满足条件的整数个数

类型:简单循环


题目描述:

在 1∼n 中,找出能同时满足用 3 除余 2 ,用 5 除余 3 ,用 7 除余 2 的所有整数的个数,如果没有请输出 0 。

输入:

输入一行,只有一个整数 n(1≤n≤2000) 。

输出:

输出只有一行(这意味着末尾有一个回车符号),包括 1 个整数。

样例:

输入:

100

输出:

1

1.分析问题

  1. 已知:一个整数n;
  2. 未知:找出能同时满足用 3 除余 2 ,用 5 除余 3 ,用 7 除余 2 的所有整数的个数,如果没有请输出 0 。
  3. 关系:逻辑运算&&。

2.定义变量

  • 定义两个整型变量:n 和 计数器c。
int n,c=0;

3.输入数据

  • 读取一个整数n,表示范围的上限。
cin>>n;

4.数据计算

  • 开始一个循环,从1遍历到n(包括n)。
  • 检查当前数i是否满足所有条件。
  • 如果满足条件,则将计数器c加1。
for(int i=1;i<=n;++i){if(i%3==2&&i%5==3&&i%7==2) ++c;
}

5.输出

  • 输出个数。
cout<<c;

完整代码如下:

#include<bits/stdc++.h>  // 包含了C++标准库中的所有头文件,方便快捷但不推荐用于实际项目中。
using namespace std;     // 使用std命名空间,避免每次使用标准库元素时都得加上std::前缀。int main(){              // 定义主函数,程序从这里开始执行。//一、分析问题//已知:一个整数n;//未知:找出能同时满足用 3 除余 2 ,用 5 除余 3 ,用 7 除余 2 的所有整数的个数,如果没有请输出 0 。//关系:逻辑运算符 //二、数据定义int n, c = 0;        // 定义两个整型变量:// n - 存储用户输入的上限;// c - 计数器,初始化为0,用来累计满足条件的整数数量。//三、数据输入cin >> n;            // 从标准输入读取一个整数n,表示范围的上限。//四、数据计算for(int i = 1; i <= n; ++i){  // 开始一个循环,从1遍历到n(包括n)。if(i % 3 == 2 && i % 5 == 3 && i % 7 == 2) {  // 检查当前数i是否满足所有条件。++c;                                      // 如果满足条件,则将计数器c加1。}}//五、输出结果cout << c;                    // 输出满足条件的整数的数量。return 0;                     // 主函数结束,返回0给操作系统,表示程序正常结束。
}

欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》

问题:1393. 与7无关的数?

类型:简单循环


题目描述:

一个整数,如果这个数能够被 7 整除,或者其中有一位是7,我们称为这个数是与 7 有关的数。比如: 14 能被 7 整除,17 有一位为 7 ,这两个数都是与 7有关的数。

请你编程求出 1∼n(n≤999) 中,与 7 无关的数的总和是多少?

比如 1∼10 中与 7 无关的数的和为:1+2+3+4+5+6+8+9+10=48 。

输入:

一个整数 n(n≤999) 。

输出:

1∼n 中与 7 无关的数的总和。

样例:

输入:

10

输出:

48

1.分析问题

  1. 已知:一个整数n;
  2. 未知:1-n中,与 7 无关的数的总和是多少?

2.定义变量

  • n - 存储用户输入的整数;
  • r - 累加器,初始化为0,用来累计满足条件的整数之和。
int n,r=0;

3.输入数据

  • 输入读取一个整数n,表示范围的上限。
cin>>n;

4.数据计算

  • 开始一个循环,从1遍历到n(包括n)。
  • 检查当前数i是否满足以下条件:
    1. 不能被7整除 (i % 7 != 0)
    2. 不包含数字7
  • 如果满足条件,则将当前数i累加到r中。
for(int i=1;i<=n;++i){if(!(i%7==0 || i%10==7 || i/10%10==7 || i/100==7)){r+=i;}
}

5.输出

  • 输出结果r。
cout<<r;

完整代码如下:

#include<bits/stdc++.h>  // 包含了C++标准库中的所有头文件,方便快捷但不推荐用于实际项目中。
using namespace std;     // 使用std命名空间,避免每次使用标准库元素时都得加上std::前缀。int main(){              // 定义主函数,程序从这里开始执行。//一、分析问题//已知:一个整数n;//未知:与 7 无关的数的总和是多少?//关系:不能被7整除且不包含数字7的数。//二、数据定义int n, r = 0;        // 定义两个整型变量:// n - 存储用户输入的上限;// r - 累加器,初始化为0,用来累计满足条件的整数之和。//三、数据输入cin >> n;            // 从标准输入读取一个整数n,表示范围的上限。//四、数据计算for(int i = 1; i <= n; ++i){  // 开始一个循环,从1遍历到n(包括n)。// 检查当前数i是否满足以下条件:// 1. 不能被7整除 (i % 7 != 0)// 2. 不包含数字7 (i % 10 != 7 && i / 10 % 10 != 7 && i / 100 != 7)if(!(i % 7 == 0 || i % 10 == 7 || i / 10 % 10 == 7 || i / 100 == 7)) {r += i;      // 如果满足条件,则将当前数i累加到r中。}}//五、输出结果cout << r;           // 输出满足条件的整数之和。return 0;            // 主函数结束,返回0给操作系统,表示程序正常结束。
}

三、总结

通过本章节的学习,我们不仅回顾了C++中的循环结构,还学习了如何利用计数器和累加器来进行复杂的数值处理。具体来说,我们了解了:

  • 计数器:用于跟踪满足特定条件的事件发生的次数。它通常从一个初始值开始,在每次满足特定条件时递增或递减。
  • 累加器:用来累积一系列数值的总和。通过在循环体内不断将当前数值添加到累加器中,可以实现对多个数值的求和。

此外,我们通过几个具体的编程问题,如求解调和级数、寻找与7无关的数等,展示了如何将这些概念应用于解决实际问题。

四、感谢

如若本文对您的学习或工作有所启发和帮助,恳请您给予宝贵的支持——轻轻一点,为文章点赞;若觉得内容值得分享给更多朋友,欢迎转发扩散;若认为此篇内容具有长期参考价值,敬请收藏以便随时查阅。

每一次您的点赞、分享与收藏,都是对我持续创作和分享的热情鼓励,也是推动我不断提供更多高质量内容的动力源泉。期待我们在下一篇文章中再次相遇,共同攀登知识的高峰!

在这里插入图片描述

相关文章:

【NOI】C++程序结构入门之循环结构三-计数求和

文章目录 前言一、计数求和1.导入2.计数器3.累加器 二、例题讲解问题&#xff1a;1741 - 求出1~n中满足条件的数的个数和总和&#xff1f;问题&#xff1a;1002. 编程求解123...n问题&#xff1a;1004. 编程求1 * 2 * 3*...*n问题&#xff1a;1014. 编程求11/21/3...1/n问题&am…...

[Linux]Shell脚本中以指定用户运行命令

前言 当我们为Linux设置了用户自启动的shel脚本&#xff0c;默认会使用root用户执行启动脚本中的命令&#xff0c;那么我们如何在启动脚本中切换为指定用户指定命令呢。 命令 以下将列出两条命令&#xff0c;两条命令都可以实现以指定用户运行命令&#xff0c;凭喜好选择使用…...

通过 NAudio 控制电脑操作系统音量

根据您的需求&#xff0c;以下是通过 NAudio 获取和控制电脑操作系统音量的方法&#xff1a; 一、获取和控制系统音量 &#xff08;一&#xff09;获取系统音量和静音状态 您可以使用 NAudio.CoreAudioApi.MMDeviceEnumerator 来获取系统默认音频设备的音量和静音状态&#…...

新项目上传gitlab

Git global setup git config --global user.name “FUFANGYU” git config --global user.email “fyfucnic.cn” Create a new repository git clone gitgit.dev.arp.cn:casDs/sawrd.git cd sawrd touch README.md git add README.md git commit -m “add README” git push…...

【异步编程基础】FutureTask基本原理与异步阻塞问题

文章目录 一、FutureTask 的桥梁作用二、Future 模式与异步回调三、 FutureTask获取异步结果的逻辑1. 获取异步执行结果的步骤2. 举例说明3. FutureTask的异步阻塞问题 Runnable 用于定义无返回值的任务&#xff0c;而 Callable 用于定义有返回值的任务。然而&#xff0c;Calla…...

原生 Node 开发 Web 服务器

一、创建基本的 HTTP 服务器 使用 http 模块创建 Web 服务器 const http require("http");// 创建服务器const server http.createServer((req, res) > {// 设置响应头res.writeHead(200, { "Content-Type": "text/plain" });// 发送响应…...

LeetCode热题100(一)—— 1.两数之和

LeetCode热题100&#xff08;一&#xff09;—— 1.两数之和 题目描述代码实现思路解析 你好&#xff0c;我是杨十一&#xff0c;一名热爱健身的程序员在Coding的征程中&#xff0c;不断探索与成长LeetCode热题100——刷题记录&#xff08;不定期更新&#xff09; 此系列文章用…...

二叉树高频题目——下——不含树型dp

一&#xff0c;普通二叉树上寻找两个节点的最近的公共祖先 1&#xff0c;介绍 LCA&#xff08;Lowest Common Ancestor&#xff0c;最近公共祖先&#xff09;是二叉树中经常讨论的一个问题。给定二叉树中的两个节点&#xff0c;它的LCA是指这两个节点的最低&#xff08;最深&…...

vue事件总线(原理、优缺点)

目录 一、原理二、使用方法三、优缺点优点缺点 四、使用注意事项具体代码参考&#xff1a; 一、原理 在Vue中&#xff0c;事件总线&#xff08;Event Bus&#xff09;是一种可实现任意组件间通信的通信方式。 要实现这个功能必须满足两点要求&#xff1a; &#xff08;1&#…...

PyCharm介绍

PyCharm的官网是https://www.jetbrains.com/pycharm/。 以下是在PyCharm官网下载和安装软件的步骤&#xff1a; 下载步骤 打开浏览器&#xff0c;访问PyCharm的官网https://www.jetbrains.com/pycharm/。在官网首页&#xff0c;点击“Download”按钮进入下载页面。选择适合自…...

《CPython Internals》读后感

一、 为什么选择这本书&#xff1f; Python 是本人工作中最常用的开发语言&#xff0c;为了加深对 Python 的理解&#xff0c;更好的掌握 Python 这门语言&#xff0c;所以想对 Python 解释器有所了解&#xff0c;看看是怎么使用C语言来实现Python的&#xff0c;以期达到对 Py…...

音频入门(一):音频基础知识与分类的基本流程

音频信号和图像信号在做分类时的基本流程类似&#xff0c;区别就在于预处理部分存在不同&#xff1b;本文简单介绍了下音频处理的方法&#xff0c;以及利用深度学习模型分类的基本流程。 目录 一、音频信号简介 1. 什么是音频信号 2. 音频信号长什么样 二、音频的深度学习分…...

Redis --- 分布式锁的使用

我们在上篇博客高并发处理 --- 超卖问题一人一单解决方案讲述了两种锁解决业务的使用方法&#xff0c;但是这样不能让锁跨JVM也就是跨进程去使用&#xff0c;只能适用在单体项目中如下图&#xff1a; 为了解决这种场景&#xff0c;我们就需要用一个锁监视器对全部集群进行监视…...

用C++编写一个2048的小游戏

以下是一个简单的2048游戏的实现。这个实现使用了控制台输入和输出&#xff0c;适合在终端或命令行环境中运行。 2048游戏的实现 1.游戏逻辑 2048游戏的核心逻辑包括&#xff1a; • 初始化一个4x4的网格。 • 随机生成2或4。 • 处理玩家的移动操作&#xff08;上、下、左、…...

【设计模式-行为型】状态模式

一、什么是状态模式 什么是状态模式呢&#xff0c;这里我举一个例子来说明&#xff0c;在自动挡汽车中&#xff0c;挡位的切换是根据驾驶条件&#xff08;如车速、油门踏板位置、刹车状态等&#xff09;自动完成的。这种自动切换挡位的过程可以很好地用状态模式来描述。状态模式…...

CentOS/Linux Python 2.7 离线安装 Requests 库解决离线安装问题。

root@mwcollector1 externalscripts]# cat /etc/os-release NAME=“Kylin Linux Advanced Server” VERSION=“V10 (Sword)” ID=“kylin” VERSION_ID=“V10” PRETTY_NAME=“Kylin Linux Advanced Server V10 (Sword)” ANSI_COLOR=“0;31” 这是我系统的版本,由于是公司内网…...

【flutter版本升级】【Nativeshell适配】nativeshell需要做哪些更改

flutter 从3.13.9 升级&#xff1a;3.27.2 nativeshell组合库中的 1、nativeshell_build库替换为github上的最新代码 可以解决两个问题&#xff1a; 一个是arg("--ExtraFrontEndOptions--no-sound-null-safety") 在新版flutter中这个构建参数不支持了导致的build错误…...

使用 Vue 3 的 watchEffect 和 watch 进行响应式监视

Vue 3 的 Composition API 引入了 <script setup> 语法&#xff0c;这是一种更简洁、更直观的方式来编写组件逻辑。结合 watchEffect 和 watch&#xff0c;我们可以轻松地监视响应式数据的变化。本文将介绍如何使用 <script setup> 语法结合 watchEffect 和 watch&…...

使用shell命令安装virtualbox的虚拟机并导出到vagrant的Box

0. 安装virtualbox and vagrant [rootolx79vagrant ~]# cat /etc/resolv.conf #search 114.114.114.114 nameserver 180.76.76.76-- install VirtualBox yum install oraclelinux-developer-release-* wget https://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-g…...

MySQL 基础学习(3):排序查询和条件查询

MySQL 查询与条件操作&#xff1a;详解与技巧 在本文中&#xff0c;我们将探讨 MySQL 中的查询操作及其相关功能&#xff0c;包括别名、去重、排序查询和条件查询等&#xff0c;并总结一些最佳实践和注意事项。 一、使用别名&#xff08;AS&#xff09; 在查询中&#xff0c…...

2025数学建模美赛|赛题翻译|E题

2025数学建模美赛&#xff0c;E题赛题翻译 更多美赛内容持续更新中......

solidity高阶 -- 继承

Solidity是一种面向区块链的智能合约编程语言&#xff0c;广泛应用于以太坊等区块链平台。继承是Solidity中一个非常重要的特性&#xff0c;它允许开发者通过创建子合约来扩展父合约的功能&#xff0c;从而实现代码的复用和层次化设计。本文将通过具体实例详细介绍Solidity语言…...

SpringBoot统一数据返回格式 统一异常处理

统一数据返回格式 & 统一异常处理 1. 统一数据返回格式1.1 快速入门1.2 存在问题1.3 案列代码修改1.4 优点 2. 统一异常处理 1. 统一数据返回格式 强制登录案例中,我们共做了两部分⼯作 通过Session来判断⽤⼾是否登录对后端返回数据进⾏封装,告知前端处理的结果 回顾 后…...

C语言学习强化

前言 数据的逻辑结构包括&#xff1a; 常见数据结构&#xff1a; 线性结构&#xff1a;数组、链表、队列、栈 树形结构&#xff1a;树、堆 图形结构&#xff1a;图 一、链表 链表是物理位置不连续&#xff0c;逻辑位置连续 链表的特点&#xff1a; 1.链表没有固定的长度…...

反馈驱动、上下文学习、多语言检索增强等 | Big Model Weekly 第55期

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 01 A Bayesian Approach to Harnessing the Power of LLMs in Authorship Attribution 传统方法严重依赖手动特征&#xff0c;无法捕捉长距离相关性&#xff0c;限制了其有效性。最近的研究利用预训练语言模型的…...

Redis 详解

简介 Redis 的全称是 Remote Dictionary Server&#xff0c;它是一个基于内存的 NoSQL&#xff08;非关系型&#xff09;数据库&#xff0c;数据以 键值对 存储&#xff0c;支持各种复杂的数据结构 为什么会出现 Redis&#xff1f; Redis 的出现是为了弥补传统数据库在高性能…...

git reset (取消暂存,保留工作区修改)

出现这种情况的背景&#xff1a;我不小心把node_modules文件添加到暂存区了&#xff0c;由于文件过大&#xff0c;导致不能提交&#xff0c;所以我想恢复之前的状态&#xff0c;但又不想把修改的代码恢复为之前的状态&#xff0c;所以使用这个命令可以只恢复暂存区的状态&#…...

C++ 自定义字面量

在C11中&#xff0c;用户自定义字面量&#xff08;User-Defined Literals&#xff09;为程序员提供了前所未有的灵活性和便利性&#xff0c;它允许我们根据自己的需求定义字面量&#xff0c;从而使代码更加直观、易读且富有表现力。 什么是用户定义字面量&#xff1f; 在C中&…...

2024年面对不确定性

24年处在了十字路口&#xff0c;面对工作、家庭、生活的责任&#xff0c;一切变得不确定了&#xff0c;量子力学给了我们新的认识世界的角度&#xff0c;不确定性才是这个世界的底色&#xff0c;我们怎么选择&#xff1f; 不停的思考 霍金在大设计书中给出了深刻的哲学思想&a…...

Coze插件开发之基于已有服务创建并上架到扣子商店

Coze插件开发之基于已有服务创建并上架到扣子商店 在应用开发中&#xff0c;需要调用各种插件&#xff0c;以快速进行开发。但有时需要调用的插件在扣子商店里没有&#xff0c;那怎么办呢&#xff1f; 今天就来带大家快速基于已有服务创建一个新的插件 简单来讲&#xff0c;就是…...