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

ZZNUOJ(C/C++)基础练习1091——1100(详解版)⭐

目录

1091 : 童年生活二三事(多实例测试)

 C

C++

1092 : 素数表(函数专题)

C

C++

1093 : 验证哥德巴赫猜想(函数专题)

C

C++

1094 : 统计元音(函数专题)

C

C++

1095 : 时间间隔(多实例测试)

C

C++

1096 : 水仙花数(多实例测试)

C

C++

1097 : 计算平均成绩(函数专题)

C

C++

使用容器map(C++)

1098 : 复合函数求值(函数专题)

C

C++

1099 : 角谷猜想(多实例测试)

C

C++

​编辑

1100 : 求组合数(函数专题)

C

C++

​编辑


 

1091 : 童年生活二三事(多实例测试)

题目描述

Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。
但年幼的他一次只能走上一阶或者一下子蹦上两阶。
现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几种走法。

输入

输入包括多组数据。
每组数据包括一行:N(1≤N≤40)。
输入以0结束

输出

对应每个输入包括一个输出。
为redraiment到达第n阶不同走法的数量。

样例输入

1
3
0

样例输出

1
3

本质:斐波那契数列

 C

#include<stdio.h>  // 包含标准输入输出库
#include<math.h>  // 定义一个函数 solve,用于计算从第0阶到第n阶的走法总数
void solve(int n)
{int arr[50];  // 定义一个数组 arr,用于存储每一阶的走法数,最大支持计算到第50阶arr[0] = 1;   // 初始化第0阶的走法数为1(站在第0阶,只有一种方式)arr[1] = 1;   // 初始化第1阶的走法数为1(从第0阶走1步到达第1阶)// 使用循环计算从第2阶到第n阶的走法数for(int i = 2; i <= n; i++){// 第i阶的走法数等于第(i-1)阶和第(i-2)阶的走法数之和// 因为可以从第(i-1)阶走1步上来,或者从第(i-2)阶跳2步上来arr[i] = arr[i - 1] + arr[i - 2];}// 输出第n阶的走法数printf("%d\n", arr[n]);
} int main()
{int m;  // 定义变量m,用于存储输入的台阶数// 使用while循环不断读取输入的台阶数,直到输入0为止while(scanf("%d", &m), m != 0){// 调用solve函数计算从第0阶到第m阶的走法总数solve(m);}return 0;  // 程序正常结束
}

C++

#include<bits/stdc++.h>  // 包含常用的头文件,方便使用各种标准库功能
using namespace std;      // 使用标准命名空间,避免重复写std::// 定义一个函数 solve,用于计算从第0阶到第n阶的走法总数
void solve(int n)
{int arr[50];  // 定义一个数组 arr,用于存储每一阶的走法数,最大支持计算到第50阶arr[0] = 1;   // 初始化第0阶的走法数为1(站在第0阶,只有一种方式)arr[1] = 1;   // 初始化第1阶的走法数为1(从第0阶走1步到达第1阶)// 使用循环计算从第2阶到第n阶的走法数for(int i = 2; i <= n; i++){// 第i阶的走法数等于第(i-1)阶和第(i-2)阶的走法数之和// 因为可以从第(i-1)阶走1步上来,或者从第(i-2)阶跳2步上来arr[i] = arr[i - 1] + arr[i - 2];}// 输出第n阶的走法数printf("%d\n", arr[n]);
} int main()
{int m;  // 定义变量m,用于存储用户输入的台阶数// 使用while循环不断读取用户输入的台阶数,直到输入0为止while(scanf("%d", &m), m != 0){// 调用solve函数计算从第0阶到第m阶的走法总数solve(m);}return 0;  // 程序正常结束
}

1092 : 素数表(函数专题)

题目描述

 输入两个正整数m和n,输出m和n之间的所有素数。 
要求程序定义一个prime()函数和一个main()函数,prime()函数判断一个整数n是否是素数,其余功能在main()函数中实现。 
int prime(int n) 

//判断n是否为素数, 若n为素数,本函数返回1,否则返回0 

输入

 输入两个正整数m和n,m<=n,且都在int范围内。 

输出

 输出占一行。输出m和n之间的所有素数,每个数后有一个空格。如果如果m到n之间没有素数,输出”No Answer”。 

样例输入

2 6

样例输出

2 3 5 

注意:特判0和1

C

#include<stdio.h>  // 包含标准输入输出库
#include<math.h>  // 定义一个函数 prime,用于判断一个整数 n 是否是素数
int prime(int n)
{// 如果 n 是 0 或 1,直接返回 0(表示不是素数)if(n == 0 || n == 1){return 0;}// 使用循环判断 n 是否能被从 2 到 sqrt(n) 之间的任何数整除for(int i = 2; i * i <= n; i++)  // 只需检查到 sqrt(n),因为如果 n 有因子,必有一个因子小于等于 sqrt(n){// 如果 n 能被 i 整除,则 n 不是素数,返回 0if(n % i == 0){return 0;}}// 如果没有找到任何因子,则 n 是素数,返回 1return 1;
} int main()
{int m, n;  // 定义变量 m 和 n,分别表示范围的起始值和结束值int flag = 0;  // 定义一个标志变量,用于判断是否找到素数scanf("%d%d", &m, &n);  // 从用户输入中读取 m 和 n 的值// 遍历从 m 到 n 的所有整数for(int i = m; i <= n; i++){// 如果当前数 i 是素数if(prime(i) == 1){printf("%d ", i);  // 输出当前素数flag = 1;  // 设置标志变量为 1,表示已找到至少一个素数}}// 如果没有找到任何素数if(flag == 0){printf("No Answer\n");  // 输出 "No Answer"}return 0;  // 程序正常结束
}

C++

#include<bits/stdc++.h>  // 包含常用的头文件,方便使用各种标准库功能
using namespace std;      // 使用标准命名空间,避免重复写std::// 定义一个函数 prime,用于判断一个数是否是素数
int prime(int n)
{// 如果 n 是 0 或 1,直接返回 0(表示不是素数)if(n == 0 || n == 1){return 0;}// 使用循环判断 n 是否能被从 2 到 sqrt(n) 之间的任何数整除for(int i = 2; i * i <= n; i++)  // 只需检查到 sqrt(n),因为如果 n 有因子,必有一个因子小于等于 sqrt(n){if(n % i == 0)  // 如果 n 能被 i 整除,则 n 不是素数{return 0;}}// 如果没有找到任何因子,则 n 是素数,返回 1return 1;
} int main()
{int m, n;  // 定义变量 m 和 n,分别表示范围的起始值和结束值int flag = 0;  // 定义一个标志变量,用于判断是否找到素数scanf("%d%d", &m, &n);  // 从用户输入中读取 m 和 n 的值// 遍历从 m 到 n 的所有整数for(int i = m; i <= n; i++){// 如果当前数 i 是素数if(prime(i) == 1){printf("%d ", i);  // 输出当前素数flag = 1;  // 设置标志变量为 1,表示已找到至少一个素数}}// 如果没有找到任何素数if(flag == 0){printf("No Answer\n");  // 输出 "No Answer"}return 0;  // 程序正常结束
}

1093 : 验证哥德巴赫猜想(函数专题)

题目描述

哥德巴赫猜想大家都知道一点吧。我们现在不是想证明这个结论,而是对于任给的一个不小于6的偶数,来寻找和等于该偶数的所有素数对。做好了这件实事,就能说明这个猜想是成立的。
要求程序定义一个prime()函数和一个main()函数,prime()函数判断一个整数n是否是素数,其余功能在main()函数中实现。
int prime(int n)
{
//判断n是否为素数, 若n为素数,本函数返回1,否则返回0
}

输入

一个偶数M (M是6到1000000之间的一个偶数).

输出

输出和等于该偶数的所有素数对a和b,按a递增的顺序输出,(a,b)和(b,a)被视为同一个素数对。

样例输入

40

样例输出

3 37
11 29
17 23

注意:对两个加数都要素数判定

C

#include<stdio.h>  // 包含标准输入输出库
#include<math.h> // 定义一个函数 prime,用于判断一个整数 n 是否是素数
int prime(int n)
{// 如果 n 是 0 或 1,直接返回 0(表示不是素数)if(n == 0 || n == 1){return 0;}// 使用循环判断 n 是否能被从 2 到 sqrt(n) 之间的任何数整除for(int i = 2; i * i <= n; i++)  // 只需检查到 sqrt(n),因为如果 n 有因子,必有一个因子小于等于 sqrt(n){// 如果 n 能被 i 整除,则 n 不是素数,返回 0if(n % i == 0){return 0;}}// 如果没有找到任何因子,则 n 是素数,返回 1return 1;
} int main()
{int n;  int flag = 0;  // 定义一个标志变量,用于判断是否找到符合条件的素数组合scanf("%d", &n);  // 遍历从 2 到 n/2 的所有整数 ifor(int i = 2; i <= n / 2; i++){// 检查 i 和 n-i 是否都是素数if(prime(i) == 1 && prime(n - i) == 1){printf("%d %d\n", i, n - i);  // 输出符合条件的素数组合flag = 1;  // 设置标志变量为 1,表示已找到至少一个符合条件的组合}}// 如果没有找到任何符合条件的素数组合if(flag == 0){printf("No Answer\n");  // 输出 "No Answer"}return 0;  // 程序正常结束
}

C++

#include<bits/stdc++.h>  // 包含常用的头文件,方便使用各种标准库功能
using namespace std;      // 使用标准命名空间,避免重复写std::// 定义一个函数 prime,用于判断一个整数 n 是否是素数
int prime(int n)
{// 如果 n 是 0 或 1,直接返回 0(表示不是素数)if(n == 0 || n == 1){return 0;}// 使用循环判断 n 是否能被从 2 到 sqrt(n) 之间的任何数整除for(int i = 2; i * i <= n; i++)  // 只需检查到 sqrt(n),因为如果 n 有因子,必有一个因子小于等于 sqrt(n){// 如果 n 能被 i 整除,则 n 不是素数,返回 0if(n % i == 0){return 0;}}// 如果没有找到任何因子,则 n 是素数,返回 1return 1;
} int main()
{int n;  int flag = 0;  // 定义一个标志变量,用于判断是否找到符合条件的素数组合scanf("%d", &n);  // 遍历从 2 到 n/2 的所有整数 ifor(int i = 2; i <= n / 2; i++){// 检查 i 和 n-i 是否都是素数if(prime(i) == 1 && prime(n - i) == 1){printf("%d %d\n", i, n - i);  // 输出符合条件的素数组合flag = 1;  // 设置标志变量为 1,表示已找到至少一个符合条件的组合}}// 如果没有找到任何符合条件的素数组合if(flag == 0){printf("No Answer\n");  // 输出 "No Answer"}return 0;  // 程序正常结束
}

1094 : 统计元音(函数专题)

题目描述

 输入一个字符串,统计其中元音字母的个数。要求使用函数vowel()用来判断是否为元音,其余功能在main()函数中实现。 
int vowel(char ch) 

//如果ch是元音,返回1,否则返回0 
}

输入

 输入一个字符串,长度不超过1000,以回车符结束。

输出

 输出一个整数,表示元音字母个数。输出单独占一行。

样例输入

Hello world!

样例输出

3

注意:别忘记判断大写字母

C

#include<stdio.h>  // 包含标准输入输出库
#include<math.h> // 定义一个函数 vowel,用于判断一个字符是否是元音字母
int vowel(char ch)
{// 判断字符 ch 是否是元音字母 a, e, i, o, u 或者它们的大写形式if(ch == 'a' || ch == 'o' || ch == 'e' || ch == 'u' || ch == 'i' ||ch == 'A' || ch == 'O' || ch == 'E' || ch == 'U' || ch == 'I'){return 1;  // 如果是元音字母,返回 1}return 0;  // 如果不是元音字母,返回 0
} int main()
{char str[1010];  // 定义一个字符数组 str,用于存储输入的字符串,最大长度为 1010gets(str);       // 使用 gets 函数从标准输入读取字符串int num = 0;     // 定义一个变量 num,用于统计元音字母的数量,初始值为 0// 遍历字符串中的每个字符for(int i = 0; str[i] != '\0'; i++)  // 当字符不是字符串结束符 '\0' 时,继续循环{// 如果当前字符是元音字母if(vowel(str[i]) == 1){num++;  // 元音字母数量加 1}}// 输出统计到的元音字母数量printf("%d\n", num);return 0;  // 程序正常结束
}

C++

#include<bits/stdc++.h>  // 包含常用的头文件,方便使用各种标准库功能
using namespace std;      // 使用标准命名空间,避免重复写std::// 定义一个函数 vowel,用于判断一个字符是否是元音字母
int vowel(char ch)
{// 判断字符 ch 是否是元音字母 a, e, i, o, u 或者它们的大写形式if(ch == 'a' || ch == 'o' || ch == 'e' || ch == 'u' || ch == 'i' ||ch == 'A' || ch == 'O' || ch == 'E' || ch == 'U' || ch == 'I'){return 1;  // 如果是元音字母,返回 1}return 0;  // 如果不是元音字母,返回 0
} int main()
{char ch1;  // 定义一个字符变量 ch1,用于存储每次读取的字符int num = 0;  // 定义一个变量 num,用于统计元音字母的数量,初始值为 0// 使用 while 循环逐字符读取输入,直到遇到换行符 '\n' 为止while(scanf("%c", &ch1), ch1 != '\n'){// 如果当前字符是元音字母if(vowel(ch1) == 1){num++;  // 元音字母数量加 1}}// 输出统计到的元音字母数量printf("%d\n", num);return 0;  // 程序正常结束
}

1095 : 时间间隔(多实例测试)

题目描述

从键盘输入两个时间点(24小时制),输出两个时间点之间的时间间隔,时间间隔用“小时:分钟:秒”表示。

输入

输入数据有多组。每组输入包括两行。第一行为时间点1,第二行为时间点2,时间点均以“HH:MM:SS”的格式输入。测试数据保证时间点1早于时间点2。

输出

对应每组数据,有一行输出,以“HH:MM:SS”的格式输出时间间隔。注意不足两位要补占位符0。格式参看输入输出。

样例输入

12:01:12
13:09:43
12:40:12
13:09:43

样例输出

01:08:31
00:29:31

注意:将时间转化为秒更好算

C

#include<stdio.h>  // 包含标准输入输出库
#include<math.h>  int main()
{int h1, t1, s1, h2, t2, s2;  // 定义变量,分别存储两个时间点的小时、分钟和秒int time1, time2, res;       // 定义变量,用于存储转换后的时间戳和时间间隔// 使用 while 循环不断读取输入,直到遇到文件结束符 EOFwhile(scanf("%d:%d:%d%d:%d:%d", &h1, &t1, &s1, &h2, &t2, &s2) != EOF){// 将第一个时间点转换为秒数time1 = h1 * 3600 + t1 * 60 + s1;  // 小时转换为秒,分钟转换为秒,加上秒数// 将第二个时间点转换为秒数time2 = h2 * 3600 + t2 * 60 + s2;  // 同样将小时和分钟转换为秒,加上秒数// 计算两个时间点之间的时间间隔(以秒为单位)res = time2 - time1;  // 用第二个时间点减去第一个时间点// 将时间间隔转换为“小时:分钟:秒”的格式// 用总秒数除以 3600 得到小时数// 用总秒数对 3600 取余后再除以 60 得到分钟数// 用总秒数对 3600 取余后再对 60 取余得到秒数printf("%02d:%02d:%02d\n", res / 3600, res % 3600 / 60, res % 3600 % 60);}return 0;  // 程序正常结束
}

C++

#include<bits/stdc++.h>  // 包含常用的头文件,方便使用各种标准库功能
using namespace std;int main()
{int h1, t1, s1, h2, t2, s2;  // 定义变量,分别存储两个时间点的小时、分钟和秒int time1, time2, res;       // 定义变量,用于存储转换后的时间戳和时间间隔// 使用 while 循环不断读取输入,直到遇到文件结束符 EOFwhile(scanf("%d:%d:%d %d:%d:%d", &h1, &t1, &s1, &h2, &t2, &s2) != EOF){// 将第一个时间点转换为秒数time1 = h1 * 3600 + t1 * 60 + s1;  // 小时转换为秒,分钟转换为秒,加上秒数// 将第二个时间点转换为秒数time2 = h2 * 3600 + t2 * 60 + s2;  // 同样将小时和分钟转换为秒,加上秒数// 计算两个时间点之间的时间间隔(以秒为单位)res = time2 - time1;  // 用第二个时间点减去第一个时间点// 如果时间间隔为负数,加上一天的总秒数(86400秒),使其变为正数if (res < 0) {res += 24 * 3600;}// 将时间间隔转换为“小时:分钟:秒”的格式// 用总秒数除以 3600 得到小时数// 用总秒数对 3600 取余后再除以 60 得到分钟数// 用总秒数对 3600 取余后再对 60 取余得到秒数printf("%02d:%02d:%02d\n", res / 3600, res % 3600 / 60, res % 3600 % 60);}return 0;  // 程序正常结束
}

1096 : 水仙花数(多实例测试)

题目描述

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。
现在要求输出所有在m和n范围内的水仙花数。

输入

输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。

输出

对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在水仙花数,则输出no;
每个测试实例的输出占一行。

样例输入

100 120
300 380

样例输出

no
370 371

C

#include<stdio.h>  // 包含标准输入输出库
#include<math.h>  // 定义一个函数 judge,用于判断一个整数是否是水仙花数
int judge(int n)
{int a, b, c;  // 定义变量 a, b, c,分别存储数字 n 的百位、十位和个位a = n / 100;  // 获取百位数字b = n / 10 % 10;  // 获取十位数字c = n % 10;  // 获取个位数字// 判断 n 是否等于其各位数字的立方和if(n == a*a*a + b*b*b + c*c*c){return 1;  // 如果是水仙花数,返回 1} return 0;  // 如果不是水仙花数,返回 0
}int main()
{int m, n;  // 定义变量 m 和 n,分别存储用户输入的范围的起始值和结束值// 使用 while 循环不断读取输入,直到遇到文件结束符 EOFwhile(scanf("%d%d", &m, &n) != EOF){int flag = 0;  // 定义一个标志变量,用于判断是否找到水仙花数// 遍历从 m 到 n 的所有整数for(int i = m; i <= n; i++){// 如果当前数 i 是水仙花数if(judge(i) == 1){// 如果已经输出过一个水仙花数,则在当前数前加一个空格if(flag == 1){printf(" ");}printf("%d", i);  // 输出当前水仙花数flag = 1;  // 设置标志变量为 1,表示已找到至少一个水仙花数}}// 如果没有找到任何水仙花数if(flag == 0){printf("no\n");  // 输出 "no"}else{printf("\n");  // 如果找到水仙花数,输出换行符}}return 0;  // 程序正常结束
}

C++

#include<bits/stdc++.h>  // 包含常用的头文件,方便使用各种标准库功能
using namespace std;      // 使用标准命名空间,避免重复写std::// 定义一个函数 judge,用于判断一个整数是否是水仙花数
int judge(int n)
{int a, b, c;  // 定义变量 a, b, c,分别存储数字 n 的百位、十位和个位a = n / 100;  // 获取百位数字b = n / 10 % 10;  // 获取十位数字c = n % 10;  // 获取个位数字// 判断 n 是否等于其各位数字的立方和if(n == a*a*a + b*b*b + c*c*c){return 1;  // 如果是水仙花数,返回 1} return 0;  // 如果不是水仙花数,返回 0
}int main()
{int m, n;  // 定义变量 m 和 n,分别存储用户输入的范围的起始值和结束值// 使用 while 循环不断读取输入,直到遇到文件结束符 EOFwhile(cin >> m >> n){int flag = 0;  // 定义一个标志变量,用于判断是否找到水仙花数// 遍历从 m 到 n 的所有整数for(int i = m; i <= n; i++){// 如果当前数 i 是水仙花数if(judge(i) == 1){// 如果已经输出过一个水仙花数,则在当前数前加一个空格if(flag == 1){cout << " ";}cout << i;  // 输出当前水仙花数flag = 1;  // 设置标志变量为 1,表示已找到至少一个水仙花数}}// 如果没有找到任何水仙花数if(flag == 0){cout << "no" << endl;  // 输出 "no"}else{cout << endl;  // 如果找到水仙花数,输出换行符}}return 0;  // 程序正常结束
}

1097 : 计算平均成绩(函数专题)

题目描述

输入某位同学各门课的成绩,输出平均成绩。输入的成绩均为五级制成绩,五级制成绩转换为百分之成绩的规则如下:'A'转换为百分之成绩为95分,'B'对应85分,C对应75分,'D'对应65分,'E'对应40分。 输出的平均成绩为一个实数,保留1为小数。

输入

输入为一行只包含'A'~'E'的字母,每个字母表示一门课的成绩,长度小于10

输出

输出平均成绩,为一个实数,保留一位小数。

样例输入

ABCDE

样例输出

72.0

C

#include<stdio.h>  // 包含标准输入输出库
#include<math.h>  // 定义一个函数 judge,用于将五级制成绩转换为百分制成绩
int judge(char ch)
{char str[100];  // 定义一个字符数组 str,用于存储五级制成绩与百分制成绩的映射关系// 初始化五级制成绩与百分制成绩的映射关系str['A'] = 95;  // 'A' 对应 95 分str['B'] = 85;  // 'B' 对应 85 分str['C'] = 75;  // 'C' 对应 75 分str['D'] = 65;  // 'D' 对应 65 分str['E'] = 40;  // 'E' 对应 40 分// 返回对应的成绩return str[ch];
}int main()
{char ch1;  // 定义一个字符变量 ch1,用于存储每次读取的成绩double num = 0, sum = 0;  // 定义变量 num 和 sum,分别用于存储成绩的数量和总和// 使用 while 循环逐字符读取输入,直到遇到换行符 '\n' 为止while(scanf("%c", &ch1), ch1 != '\n'){sum += judge(ch1);  // 调用 judge 函数将五级制成绩转换为百分制成绩,并累加到总和中num++;  // 成绩数量加 1}// 计算平均成绩,并保留 1 位小数printf("%.1f\n", sum / num);return 0;  // 程序正常结束
}

C++

#include<bits/stdc++.h>  // 包含常用的头文件,方便使用各种标准库功能
using namespace std;      // 使用标准命名空间,避免重复写std::// 定义一个函数 judge,用于将五级制成绩转换为百分制成绩
int judge(char ch)
{char str[100];  // 定义一个字符数组 str,用于存储五级制成绩与百分制成绩的映射关系// 初始化五级制成绩与百分制成绩的映射关系str['A'] = 95;  // 'A' 对应 95 分str['B'] = 85;  // 'B' 对应 85 分str['C'] = 75;  // 'C' 对应 75 分str['D'] = 65;  // 'D' 对应 65 分str['E'] = 40;  // 'E' 对应 40 分// 返回对应的成绩return str[ch];
}int main()
{char ch1;  // 定义一个字符变量 ch1,用于存储每次读取的成绩double num = 0, sum = 0;  // 定义变量 num 和 sum,分别用于存储成绩的数量和总和// 使用 while 循环逐字符读取输入,直到遇到换行符 '\n' 为止while(scanf("%c", &ch1), ch1 != '\n'){sum += judge(ch1);  // 调用 judge 函数将五级制成绩转换为百分制成绩,并累加到总和中num++;  // 成绩数量加 1}// 计算平均成绩,并保留 1 位小数printf("%.1f\n", sum / num);return 0;  // 程序正常结束
}

使用容器map(C++)

#include<bits/stdc++.h>  // 包含常用的头文件,方便使用各种标准库功能
using namespace std;int main()
{map<char, int> grade;  // 定义一个 map,用于存储五级制成绩与百分制成绩的映射关系grade['A'] = 95;  // 'A' 对应 95 分grade['B'] = 85;  // 'B' 对应 85 分grade['C'] = 75;  // 'C' 对应 75 分grade['D'] = 65;  // 'D' 对应 65 分grade['E'] = 40;  // 'E' 对应 40 分double num = 0, sum = 0;  // 定义变量 num 和 sum,分别用于存储成绩的数量和总和char ch1;  // 定义一个字符变量 ch1,用于存储每次读取的成绩// 使用 while 循环逐字符读取输入,直到遇到换行符 '\n' 为止while(scanf("%c", &ch1), ch1 != '\n'){sum += grade[ch1];  // 通过 map 查找对应的成绩并累加到总和中num++;  // 成绩数量加 1}// 计算平均成绩,并保留 1 位小数printf("%.1f\n", sum / num);return 0;  // 程序正常结束
}

1098 : 复合函数求值(函数专题)

题目描述

求复合函数F(G(x)),其中函数F(x)=|x-3|+|x+1|,函数G(x)=x^2-3x。要求编写函数funF()和funG()分别求F(x)和G(x),其余功能在main()中实现。
double funF(double x)
{
//函数返回F(x)的值;
}
double funG(double x)
{
//函数返回G(x)的值;
}

输入

输入一个实数x。

输出

输出复合函数的值,结果保留2位小数。输出占一行。

样例输入

10.2

样例输出

144.88

C

#include<stdio.h>
#include<math.h>  // 包含数学函数库,用于计算绝对值// 定义函数 funG,计算 G(x) = x^2 - 3x
double funG(double x)
{return x * x - 3 * x;  // 返回 G(x) 的值
}// 定义函数 funF,计算 F(x) = |x - 3| + |x + 1|
double funF(double x)
{return fabs(x - 3) + fabs(x + 1);  // 返回 F(x) 的值
}int main()
{double x;  // 定义变量 x,用于存储用户输入的实数scanf("%lf", &x);  // 从用户输入中读取一个实数 x// 计算复合函数 F(G(x)) 的值double result = funF(funG(x));  // 先计算 G(x),再将结果传递给 F(x)// 输出结果,保留两位小数printf("%.2f\n", result);return 0;  // 程序正常结束
}

C++

#include<bits/stdc++.h>  // 包含常用的头文件,方便使用各种标准库功能
using namespace std;// 定义函数 G,计算 G(x) = x^2 - 3x
double G(double x)
{return x * x - 3 * x;  // 返回 G(x) 的值
}// 定义函数 F,计算 F(x) = |x - 3| + |x + 1|
double F(double x)
{double x1 = G(x);  // 先计算 G(x) 的值return fabs(x1 - 3) + fabs(x1 + 1);  // 返回 F(G(x)) 的值
}int main()
{double x;  // 定义变量 x,用于存储用户输入的实数scanf("%lf", &x);  // 从用户输入中读取一个实数 xprintf("%.2f", F(x));  // 计算并输出 F(G(x)) 的值,保留两位小数return 0;  // 程序正常结束
}

1099 : 角谷猜想(多实例测试)

题目描述

任何一个自然数,如果是偶数,就除以2,如果是奇数,就乘以3再加1。最后,经过若干次迭代得到1。也就是说,不管怎样迭代,不断除以2以后,最后是1。现在给你一个自然数n,求出它转变为1所需要的步数。

输入

输入数据有多组,每组输入包含一个自然数n。测试数据保证输入数据及中间结果都在int范围内。

输出

对每组输入,输出经过角谷猜想变成1的步数。

样例输入

5
11

样例输出

5
14

C

#include<stdio.h>  // 包含标准输入输出库
#include<math.h>  // 定义函数 step,计算自然数 n 转变为 1 所需要的步数
int step(int n)
{int num = 0;  // 定义变量 num,用于记录步数,初始值为 0while(n != 1)  // 当 n 不等于 1 时,继续循环{num++;  // 步数加 1if(n % 2 == 0)  // 如果 n 是偶数{n >>= 1;  // 将 n 右移 1 位,即 n 除以 2}else  // 如果 n 是奇数{n = n * 3 + 1;  // 将 n 乘以 3 再加 1}}return num;  // 返回步数
}int main()
{int n; while(scanf("%d", &n) != EOF)  // 使用 while 循环不断读取输入,直到遇到文件结束符 EOF{printf("%d\n", step(n));  // 调用 step 函数计算步数,并输出结果}return 0;  // 程序正常结束
}

C++

#include<bits/stdc++.h>  // 包含常用的头文件,方便使用各种标准库功能
using namespace std;// 定义函数 step,计算自然数 n 转变为 1 所需要的步数
int step(int n)
{int num = 0;  // 定义变量 num,用于记录步数,初始值为 0// 当 n 不等于 1 时,继续循环while(n != 1){num++;  // 每次循环步数加 1// 如果 n 是偶数if(n % 2 == 0){n >>= 1;  // 将 n 右移 1 位,相当于 n 除以 2}else{n = n * 3 + 1;  // 如果 n 是奇数,则将 n 乘以 3 再加 1} }return num;  // 返回最终的步数
}int main()
{int n;  // 使用 while 循环不断读取输入,直到遇到文件结束符 EOFwhile(scanf("%d", &n) != EOF){printf("%d\n", step(n));  // 调用 step 函数计算步数,并输出结果}return 0;  // 程序正常结束
}

1100 : 求组合数(函数专题)

题目描述

求马上要举办新生程序设计竞赛了,与以往不同的是,本次比赛以班为单位,为了全面衡量一个班级的整体水平,要求从一个班的m位同学中任选k位同学代表本班参加比赛,问有多少种组合方案。显然,这个组合数是m!/(k!(m-k)!)。要求编写函数fact(),实现求一个数的阶乘功能,在主函数中调用此函数。
unsigned long fact(unsigned int n)

{
   //函数返回值为n的阶乘。
}

输入

输入两个正整数m,k,k<=m<=12。

输出

输出一个整数,即组合方案数。

样例输入

5 3

样例输出

10

C

#include<stdio.h>  // 包含标准输入输出库
#include<math.h>  // 使用 typedef 定义一个别名 i64,表示 long long 类型
typedef long long i64;// 定义函数 fact,计算 n 的阶乘
i64 fact(int n)
{int num = 1;  // 定义变量 num,用于存储阶乘的结果,初始值为 1for(int i = 1; i <= n; i++)  // 使用 for 循环计算 n 的阶乘{num *= i;  // 将当前值 i 乘到 num 中}return num;  // 返回计算得到的阶乘结果
}int main()
{int n, k;  // 定义变量 n 和 k,分别表示总人数和需要选择的人数scanf("%d%d", &n, &k);  // 从用户输入中读取 n 和 k 的值// 计算组合数 C(n, k) = n! / (k! * (n - k)!)int res = fact(n) / fact(n - k) / fact(k);printf("%d\n", res);  // 输出结果return 0;  // 程序正常结束
}

C++

#include<bits/stdc++.h>  // 包含常用的头文件,方便使用各种标准库功能
using namespace std;      // 使用标准命名空间,避免重复写std::typedef long long i64;    // 使用 typedef 定义别名 i64,表示 long long 类型// 定义函数 fact,计算 n 的阶乘
i64 fact(int n)
{int num = 1;  // 定义变量 num,用于存储阶乘的结果,初始值为 1for(int i = 1; i <= n; i++)  // 使用 for 循环从 1 到 n 逐个乘到 num 中{num *= i;  // 将当前值 i 乘到 num 中}return num;  // 返回计算得到的阶乘结果
}int main()
{int n, k;  // 定义变量 n 和 k,分别表示总人数和需要选择的人数scanf("%d%d", &n, &k);  // 从用户输入中读取 n 和 k 的值// 计算组合数 C(n, k) = n! / (k! * (n - k)!)int res = fact(n) / fact(n - k) / fact(k);  // 调用 fact 函数计算阶乘,并根据组合数公式计算结果printf("%d\n", res);  // 输出结果return 0;  // 程序正常结束
}

相关文章:

ZZNUOJ(C/C++)基础练习1091——1100(详解版)⭐

目录 1091 : 童年生活二三事&#xff08;多实例测试&#xff09; C C 1092 : 素数表(函数专题&#xff09; C C 1093 : 验证哥德巴赫猜想&#xff08;函数专题&#xff09; C C 1094 : 统计元音&#xff08;函数专题&#xff09; C C 1095 : 时间间隔&#xff08;多…...

浏览器的缓存方式几种

浏览器的缓存方式主要分为以下几种&#xff1a; 1. 强制缓存&#xff08;强缓存 / Memory Cache & Disk Cache&#xff09; 通过 Expires 或 Cache-Control 头部控制。在缓存有效期内&#xff0c;浏览器直接使用缓存&#xff0c;不发起请求。 关键HTTP头&#xff1a; Ex…...

【前端】【面试】【经典一道题】vue中组件传值的几种方式

父子组件传值 1. 父传子&#xff1a;props 这是最常见的父组件向子组件传递数据的方式。父组件在使用子组件时&#xff0c;通过在子组件标签上绑定属性来传递数据&#xff0c;子组件通过 props 选项接收这些数据。 <!-- 父组件 --> <template><div><Ch…...

SwiftUI 中 .overlay 两种写法的区别及拓展

SwiftUI 中 .overlay 两种写法的区别及拓展 一、.overlay 简介功能语法 二、写法 1&#xff1a;.overlay(Circle().stroke(Color.blue, lineWidth: 2))代码示例解释优点适用场景 三、写法 2&#xff1a;.overlay { Circle().stroke(.white, lineWidth: 4) }代码示例解释优点适用…...

简述mysql 主从复制原理及其工作过程,配置一主两从并验证

原理&#xff1a; MySQL主从复制是基于事件的复制机制。主服务器负责处理所有的写操作和事务&#xff0c;并将这些更改&#xff08;如INSERT、UPDATE和DELETE&#xff09;以事件的形式记录到二进制日志&#xff08;binlog&#xff09;中。从服务器则通过读取主服务器的二进制日…...

python-leetcode 25.环形链表

题目&#xff1a; 给定一个链表的头节点head,判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪next指针再次到达&#xff0c;则链表中存在环。为了表示给定链表中的环&#xff0c;评测系统内部使用整数pos来表示链表尾连接到链表中的位置&#xff08;…...

游戏引擎学习第98天

仓库:https://gitee.com/mrxiao_com/2d_game_2 开始进行一点回顾 今天的目标是继续实现正常贴图的操作&#xff0c;尽管目前我们还没有足够的光照信息来使其完全有用。昨日完成了正常贴图相关的基础工作&#xff0c;接下来将集中精力实现正常贴图的基本操作&#xff0c;并准备…...

机器学习 - 进一步理解最大似然估计和高斯分布的关系

一、高斯分布得到的是一个概率吗&#xff1f; 高斯分布&#xff08;也称为正态分布&#xff09;描述的是随机变量在某范围内取值的概率分布情况。其概率密度函数&#xff08;PDF&#xff09;为&#xff1a; 其中&#xff0c;μ 是均值&#xff0c;σ 是标准差。 需要注意的是…...

物联网水质监测系统设计与实现/基于STM32的水产养殖云监控系统设计

背景 随着物联网技术的飞速发展&#xff0c;各行各业都在逐步实现智能化管理&#xff0c;水质监测系统作为环境监测中的一个重要环节&#xff0c;近年来备受关注。如何高效、精准地监测水质&#xff0c;尤其是在远程无法到达的地方&#xff0c;成为了一个迫切需要解决的问题。…...

【学习笔记】计算机网络(三)

第3章 数据链路层 文章目录 第3章 数据链路层3.1数据链路层的几个共同问题3.1.1 数据链路和帧3.1.2 三个基本功能3.1.3 其他功能 - 滑动窗口机制 3.2 点对点协议PPP(Point-to-Point Protocol)3.2.1 PPP 协议的特点3.2.2 PPP协议的帧格式3.2.3 PPP 协议的工作状态 3.3 使用广播信…...

Android 系统面试问题

一.android gki和非gki的区别 Android GKI&#xff08;Generic Kernel Image&#xff09;和非GKI内核的主要区别在于内核设计和模块化程度&#xff0c;具体如下&#xff1a; 1. 内核设计 GKI&#xff1a;采用通用内核设计&#xff0c;与设备硬件分离&#xff0c;核心功能统一…...

大疆无人机二次开发调试准备

以下机场和遥控器模式只能同时支持一种&#xff0c;因为无人机只能同时对频一种设备&#xff0c;如果同时对频了两种&#xff0c;以最后对频设备为准 机场模式 保证机场的网口闪烁&#xff0c;网络正常在mqtt中给dock建立用户&#xff0c;配置新建的MQTT账号和密码。组织ID任…...

【嵌入式Linux应用开发基础】文件I/O基础编程

目录 一、文件I/O简介 二、文件描述符 2.1. 唯一性 2.2. 抽象性 2.3. 有限性 三、文件操作函数 四、标准文件I/O函数 五、文件执行权限 5.1. 权限类型 5.2. 权限分配对象 5.3. 权限表示方法 5.4. 权限设置命令 5.5. 权限设置的重要性 5.6. 实例说明 六、设备文件…...

【StableDiffusion容器化部署】分步指南

使用Docker部署和管理Stable Diffusion环境可以有效解决依赖冲突、环境隔离和可移植性问题。以下是分步指南和相关技术细节&#xff1a; 1. 基础环境准备 1.1 安装Docker和GPU支持 安装Docker Engine&#xff1a;参考官方文档配置NVIDIA Container Toolkit&#xff1a;# 安装…...

2.11 sqlite3数据库【数据库的相关操作指令、函数】

练习&#xff1a; 将 epoll 服务器 客户端拿来用 客户端&#xff1a;写一个界面&#xff0c;里面有注册登录 服务器&#xff1a;处理注册和登录逻辑&#xff0c;注册的话将注册的账号密码写入数据库&#xff0c;登录的话查询数据库中是否存在账号&#xff0c;并验证密码是否正确…...

安装 Ollama 需要哪些步骤?(windows+mac+linux+二进制+Docker)

安装 Ollama 的步骤根据操作系统不同会有所差异,以下是针对不同操作系统的详细安装指南: Windows 系统 下载安装包:访问 Ollama 官方下载页面,下载适用于 Windows 的安装程序 OllamaSetup.exe。运行安装程序:双击下载的安装包,按照提示完成安装。默认安装路径为 C:\User…...

【力扣】148.排序链表

AC截图 题目 思路 基本情况处理&#xff1a; 如果链表为空 (head NULL) 或者链表仅有一个节点 (head->next NULL)&#xff0c;则链表已经是有序的&#xff0c;直接返回头节点 head。 分割链表&#xff1a; 使用快慢指针法找到链表的中间节点。slow 指针每次前进一格&…...

Springboot框架扩展功能的使用

Spring Boot 提供了许多扩展点&#xff0c;允许开发者在应用程序的生命周期中插入自定义逻辑。这些扩展点可以帮助你更好地控制应用程序的行为&#xff0c;例如在启动时初始化数据、在关闭时释放资源、或者自定义配置加载逻辑。以下是 Spring Boot 中常见的扩展点&#xff1a; …...

绿虫储能仿真软件解决储能项目中的哪些痛点

痛点一&#xff1a;储能方案定制难 如何根据不同用户的需求&#xff0c;制定科学合理的储能方案&#xff0c;一直是行业内的一大难题。每个用户的用电情况、场地条件、预算等都存在差异&#xff0c;想要实现 “千人千面” 的专属方案设计谈何容易。 绿虫储能仿真设计软件凭借…...

保姆级教程Docker部署Zookeeper镜像

目录 一、安装Docker及可视化工具 二、创建Zookeeper网络 三、镜像选择 四、单节点部署 1、创建挂载目录 2、命令运行容器 3、Compose运行容器 4、查看运行状态 5、验证是否正常运行 一、安装Docker及可视化工具 Docker及可视化工具的安装可参考&#xff1a;Ubuntu上…...

【leetcode】滑动窗口刷题总结

滑动窗口算法技巧主要用来解决子数组问题&#xff0c;比如让你寻找符合某个条件的最长/最短子数组或者子串。对于某些题目&#xff0c;并不需要穷举所有子串&#xff0c;就能找到题目想要的答案。滑动窗口就是这种场景下的一套算法模板&#xff0c;帮你对穷举过程进行剪枝优化&…...

【MySQL】通过shell脚本一键同步MySQL数据库结构和数据到指定库中

通过shell脚本对数据库进行覆盖式备份/迁移&#xff0c;简单方便&#xff0c;适合需要快速同步某个库结构和数据到目标库的场景。 通过AI调试了好些次得到能用的脚本&#xff0c;本文主要是做一个对该脚本的记录| 安装依赖 # 安装进度条库 sudo apt install pv注&#xff1a;如…...

C# COM 组件在.NET 平台上的编程介绍

.NET学习资料 .NET学习资料 .NET学习资料 一、COM 组件简介 COM&#xff08;Component Object Model&#xff09;即组件对象模型&#xff0c;是一种微软提出的软件组件技术&#xff0c;它允许不同的软件模块在二进制层面进行交互。COM 组件可以用多种编程语言开发&#xff0…...

数据结构与算法:动态规划dp:背包问题:理论基础(状态压缩/滚动数组)和相关力扣题(416. 分割等和子集、1049.最后一块石头的重量Ⅱ、494.目标和)

背包问题 01背包理论基础 对于01背包问题&#xff0c;物品下标为0到i&#xff0c;对应的重量为weight[0]到weight[i]&#xff0c;价值为value[0]到value[i]&#xff0c;每个物品只可以取或不取&#xff0c;背包最大容量为j的场景。 常见的状态转移方程如下&#xff1a; dp[i…...

【MySQL例题】我在广州学Mysql 系列——有关数据备份与还原的示例

ℹ️大家好&#xff0c;我是练小杰&#xff0c;今天周二&#xff0c;明天就是元宵节了呀&#xff01;&#xff01;&#x1f606; 俗话说“众里寻他千百度。蓦然回首&#xff0c;那人却在&#xff0c;灯火阑珊处。” 本文主要对数据库备份与还原的知识点例题学习~~ 前情回顾&…...

【Git】完美解决git push报错403

remote: Permission to xx.git denied to xx. fatal: unable to access https://github.com/xx/xx.git/: The requested URL returned error: 403出现这个就是因为你的&#xff08;personal access tokens &#xff09;PAT过期了 删掉旧的token 生成一个新的 mac系统 在mac的…...

2021 年 9 月青少年软编等考 C 语言五级真题解析

目录 T1. 问题求解思路分析T2. 抓牛思路分析T3. 交易市场思路分析T4. 泳池思路分析T1. 问题求解 给定一个正整数 N N N,求最小的 M M M 满足比 N N N 大且 M M M 与 N N N 的二进制表示中有相同数目的 1 1 1。 举个例子,假如给定 N N N 为 78 78 78,二进制表示为 …...

玩转适配器模式

文章目录 解决方案现实的举例适用场景实现方式适配器模式优缺点优点:缺点:适配器模式可比上一篇的工厂模式好理解多了,工厂模式要具有抽象的思维。这个适配器模式,正如字面意思,就是要去适配某一件物品。 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格…...

Batch Normalization (BN) 和 Synchronized Batch Normalization (SyncBN) 的区别

Batch Normalization 和 Synchronized Batch Normalization 的区别 Batch Normalization (BN) 和 Synchronized Batch Normalization (SyncBN) 的区别1. BN&#xff08;Batch Normalization&#xff09;2. SyncBN&#xff08;Synchronized Batch Normalization&#xff09;3. 选…...

MySQL主从同步

目录 一、MySQL主从同步 1、基于binlog的主从同步 2、基于gtid的主从同步配置 二、MySQL 主从读写分离实现方案 2.1 ProxySQL实现mysql8主从同步读写分离 1、ProxySQL基本介绍 2、ProxySQL结构 2、实验环境 3、实现数据库主从复制 4、安装ProxySQL 5、配置ProxySQL …...

CCFCSP认证考试 ——202403-1 词频统计

题目&#xff1a; 在学习了文本处理后&#xff0c;小 P 对英语书中的 n 篇文章进行了初步整理。 具体来说&#xff0c;小 P 将所有的英文单词都转化为了整数编号。假设这 n 篇文章中共出现了 m 个不同的单词&#xff0c;则把它们从 1 到 m 进行编号。 这样&#xff0c;每篇文章…...

关于“i18n“在vue中的使用

关于"i18n"在vue中的使用 <!-- vue2中 --> <template><div>{{ $t("This campaign has expired.") }}}}</div> </template> <script> export default {created() {this.onLoading();},methods: {onLoading () {this.$…...

MATLAB中count函数用法

目录 语法 说明 示例 对出现次数计数 使用模式对数字和字母进行计数 多个子字符串的所有出现次数 忽略大小写 对字符向量中的子字符串进行计数 count函数的功能是计算字符串中模式的出现次数。 语法 A count(str,pat) A count(str,pat,IgnoreCase,true) 说明 A c…...

Spring中的@Component和@Bean有什么区别?

在Spring框架中&#xff0c;Component和Bean都用于定义Bean&#xff0c;但它们的使用场景和方式有所不同。 ### 1. Component - **作用范围**&#xff1a;Component是一个类级别的注解&#xff0c;通常用于标记一个类为Spring的组件。Spring会自动扫描并注册这些类为Bean。 -…...

泛化、选择、分化

泛化是指记忆联系的“发散”&#xff0c;泛化兴奋的基础是模糊兴奋。记忆联系的“发散”有以下几种种情况&#xff1a; 1、联络区的一原始记忆柱群&#xff08;A1&#xff09;具有直接或间接与其它任意联络区的任意原始记忆柱群建立记忆联系的潜力。也就是说任何两个对象&…...

剖析 C++ 模拟算法:数据结构、随机数生成与模型验证

模拟算法 (Simulation Algorithms) 是一种通过计算机程序来模拟现实世界或系统行为的算法。它不依赖于特定的数学公式或优化技术&#xff0c;而是直接按照系统的规则和逻辑进行步骤一步地模拟。 模拟算法的复杂度和效率取决于模拟系统的复杂程度和模拟的精度要求。 在 C 中&…...

51单片机俄罗斯方块整行消除函数

/************************************************************************************************************** * 名称&#xff1a;flash * 功能&#xff1a;行清除动画 * 参数&#xff1a;NULL * 返回&#xff1a;NULL * 备注&#xff1a; * 采用非阻塞延时&#xff0…...

IDEA升级出现问题Failed to prepare an update Temp directory inside installation

IDEA升级出现问题"Failed to prepare an update Temp directory inside installation…" 问题来源&#xff1a; 之前修改了IDEA的默认配置文件路径&#xff0c;然后升级新版本时就无法升级&#xff0c;提示"Failed to prepare an update Temp directory insid…...

Windows系统下设置Vivado默认版本:让工程文件按需打开

在FPGA开发过程中&#xff0c;我们常常需要在一台电脑上安装多个不同版本的Vivado软件&#xff0c;以满足不同项目的需求。然而&#xff0c;当双击打开一个Vivado工程文件&#xff08;.xpr&#xff09;时&#xff0c;系统默认会调用一个固定的版本&#xff0c;这可能并不是我们…...

CSS3+动画

浏览器内核以及其前缀 css标准中各个属性都要经历从草案到推荐的过程&#xff0c;css3中的属性进展都不一样&#xff0c;浏览器厂商在标准尚未明确的情况下提前支持会有风险&#xff0c;浏览器厂商对新属性的支持情况也不同&#xff0c;所有会加厂商前缀加以区分。如果某个属性…...

Kotlin 2.1.0 入门教程(十一)for、while、return、break、continue

for 循环 for 循环会遍历任何提供迭代器的对象。 for (item in collection) print(item)for (int: Int in ints) {println(int) }for 循环会遍历任何提供迭代器的对象&#xff0c;这意味着该对象必须满足以下条件&#xff1a; 具有一个成员函数或扩展函数 iterator()&#xf…...

深度探索DeepSeek:成本效益之辩与市场展望

摘要 DeepMind的CEO对DeepSeek的成本效益提出质疑&#xff0c;认为其成本被过度炒作。他指出&#xff0c;DeepSeek所使用的技术大多源自谷歌和DeepMind。然而&#xff0c;分析机构SemiAnalysis强调&#xff0c;DeepSeek的优势在于其成本与能力的卓越组合。尽管目前DeepSeek的成…...

DeepSeek投喂数据(训练AI)

1、拉取nomic-embed-text 打开命令行&#xff0c;运行&#xff1a;ollama pull nomic-embed-text 这里需要先安装ollama &#xff0c;不过大家应该在本地部署模型时已经安装了 拉取成功就行了&#xff0c;后续在配置AnythingLLM时用到 2、下载 AnythingLLM 地址&#xff1a…...

Docker 安装与配置 Nginx

摘要 1、本文全面介绍了如何在 Docker 环境中安装和配置 Nginx 容器。 2、文中详细解释了如何设置 HTTPS 安全连接及配置 Nginx 以实现前后端分离的代理服务。 2、同时&#xff0c;探讨了通过 IP 和域名两种方式访问 Nginx 服务的具体配置方法 3、此外&#xff0c;文章还涵…...

常用电路(过压保护、电流/电压采集)

过压保护电路 输入电压使用电源&#xff08;36V&#xff09;或者typec&#xff08;20V&#xff09;&#xff0c;需要过压保护电路处理输入再连接到CH224K&#xff0c;保证输入不高于最大获取电压20V MOS管导通条件为栅源极有压差&#xff0c;一般为5-10V 三极管导通条件为基极…...

12.Python模块:模块中的__all__、模块制作、打包模块、模块安装与使用

在 Python 中&#xff0c;模块是一个包含 Python 代码的文件。模块可以包含函数、类和变量&#xff0c;也可以包括可执行的代码。Python提供了一套强大的模块系统&#xff0c;支持模块的制作、打包、安装和使用。接下来&#xff0c;我们将详细介绍 __all__、模块制作、打包模块…...

Socket通信端口绑定的逻辑实现

在实现网络通信时&#xff0c;一个 Socket 需要维护输入端与输出端的 IP 地址和端口号&#xff0c;同时也需要输入与输出字节缓冲区&#xff1a; 输入端与输出端的 IP 地址和端口号 作用 标识通信端点&#xff1a;IP 地址用于标识网络中的设备&#xff0c;端口号用于标识设备…...

在freertos中,中断优先级和任务优先级之间的关系和使用方法

中断优先级和任务优先级如何匹配&#xff1f;任务优先级不同任务之间该用多高的优先级&#xff1f;中断优先级不同中断中该用多高的优先级&#xff1f;中断优先级和任务优先级设置时&#xff0c;怎样设置可以让任务在调度时屏蔽中断&#xff1f;怎样设置可以让任务在调度时&…...

解锁摄影潜能:全面解析相机镜头的选择与使用逻辑

目录 一、镜头分类&#xff1a;从焦距到用途的底层逻辑 &#xff08;一&#xff09;按焦距和视角分类&#xff08;一级分类&#xff09; &#xff08;二&#xff09;按特殊用途分类&#xff08;一级分类&#xff09; 二、参数解码&#xff1a;超越 “光圈越大越好” 的思维定…...

java项目之直销模式下家具工厂自建网站源码(ssm+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的直销模式下家具工厂自建网站源码。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 直销模式下家具…...