news 2026/7/14 19:55:02

第 7 章 函数与递归

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第 7 章 函数与递归
1.简单算术表达式求值
#include<bits/stdc++.h>//万能头 using namespace std;//使用std命名空间 int main(){//主函数 int n1,n2;char ch;//n1为第一个运算数,n2为第二个运算数,ch为运算符 cin>>n1>>ch>>n2;//输入:由于cin读取数字的特殊方式,当读取出非数字字符时会将其留在缓冲区不做处理,所以我们可以这样连用cin switch(ch){//switch 语句测试一个变量等于多个值时的情况。 case '+'://当运算符为+时 cout<<(n1+n2);//输出第一个运算数加第二个运算数 break;//退出switch case '-'://当运算符为-时 cout<<n1-n2;//输出第一个运算数减第二个运算数 break;//退出switch case '*'://当运算符为*时 cout<<n1*n2;//输出第一个运算数乘第二个运算数 break;//退出switch case '/'://当运算符为/时 cout<<n1/n2;//输出第一个运算数除第二个运算数 break;//退出switch case '%'://当运算符为%时 cout<<n1%n2;//输出第一个运算数对第二个运算数取模 break;//退出switch } return 0;//返回0 }

2.最⼤数 max(x,y,z)

#include <iostream> #include <algorithm> using namespace std; int main() { double a, b, c; cin >> a >> b >> c; cout << fixed << setprecision(3) << max({a, b, c}) / (max({a + b, b, c}) * max({a, b, b + c})) << endl; return 0; }
3.最⾼分和最低分之差
#include<bits/stdc++.h> using namespace std; int main() { int n=0; cin>>n; int max=0; int num=0; int min=10001; while(n--) { cin>>num; if(max<num) { max=num; } if(min>num) { min=num; } } cout<<max-min; }
4.歌唱⽐赛
#include<bits/stdc++.h> using namespace std; double a[105][25]; double q[105]; double w[105]; int main(){ int n,m; cin>>n>>m; double sum=0; for(int i=1;i<=n;i++){ w[i]=15; } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; w[i]=min(a[i][j],w[i]); q[i]=max(a[i][j],q[i]);//记录最高分和最低分。 } } for(int i=1;i<=n;i++){ double s=0; for(int j=1;j<=m;j++){ s+=a[i][j];//计算每名同学的总得分。 } s-=w[i]; s-=q[i];//减去最低分和最高分。 sum=max(sum,s);//记录最高的总得分。 } printf("%.2lf",sum/(m-2)); }
5.求正整数 2 和 n 之间的完全数
#include<iostream> using namespace std; bool check(int x){ int sum=0; for(int i=1;i*i<=x;i++){//从1枚举到x的平方根就可以了,降低时间复杂度。 if(x%i==0){ sum+=i; if(i*i!=x)sum+=x/i;//因为如果i是x的因数,则x/i也是x的因数。 //但是如果x是平方数的话,则x的平方根会被重复计算,须加上特判。 } } return sum-x==x; //因为sum-x==x本身就是布尔表达式,所以可以直接返回。 } int main(){ for(int i=2;i<=10000;i++){ if(check(i))cout<<i<<endl; } return 0; }
6.甲流病⼈初筛
#include<bits/stdc++.h> using namespace std; int n,cough,ans; string name; //循环n次读入,可以重复使用变量 double temp; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>name>>temp>>cough; //读入病人的信息 if(temp>=37.5&&cough) //如果符合筛查条件 { cout<<name<<endl; //输出名字 ans++; //被初筛为甲流的病人数量+1 } } cout<<ans<<endl; //输出被初筛为甲流的病人数量 return 0; }
7.素数个数
#include<cstdio> using namespace std; int n,pri[50005]={},cnt=0; int main(){ scanf("%d",&n);//输入 for(int i=2;i<=n;i++){//埃氏筛法 if(pri[i])continue; for(int j=i+i;j<=n;j+=i)pri[j]=1;//质数的几倍是合数 } for(int i=2;i<=n;i++)if(!pri[i])cnt++;//统计质数 printf("%d",cnt);//输出 return 0; }
8.素数对
#include<bits/stdc++.h> using namespace std; int n; bool prime(int x)//判断是否为质数的函数 { if(x==1) return false; if(x==2) return true; int j=2; while(j*j<=x && x%j!=0) j++; if(x%j==0) return false; else return true; } bool pd=true; int main() { cin>>n; for(int i=3;i<=n;i++) { if(prime(i) && prime(i-2))//枚举 { cout<<i-2<<" "<<i<<endl; pd=false; } } if(pd) cout<<"empty"<<endl; //若没有找到,则输出 "empty" return 0; }
9.素数回⽂数的个数
#include<bits/stdc++.h> using namespace std; bool ss(int x)//判断素数 { for(int i=2;i<=x-1;i++) if(x%i==0) return false; return true; } bool hw(int x)//判断回文数 { int t=0,m=0,a[15],b[15]; while(x!=0) { t++; a[t]=x%10; x/=10; } for(int i=t;i>=1;i--) { m++; b[m]=a[i]; } for(int i=1;i<=t;i++) if(a[i]!=b[i]) return false; return true; } int main() { int n,ans=0; cin>>n; for(int i=11;i<=n;i++) if(hw(i)&&ss(i))//如果两个条件均符合,计数器就加一 ans++; cout<<ans; return 0; }
10.区间内的真素数
#include <iostream> #include <string> #include <algorithm> using namespace std; int n, m;bool f, b; bool isp(int n) { if(n == 1) return 0; if(n == 2) return 1; if(n % 2 == 0) return 0; for(int i = 3;i * i <= n;++i) if(n % i == 0) return 0; return 1; } int main() { cin >> n >> m; for(int i = n;i <= m;++i) { string t = to_string(i); reverse(t.begin(), t.end()); int j = stoi(t); if(isp(i) && isp(j)) { if(f) cout << ","; cout << i;f = 1;b = 1; } } if(!b) cout << "No"; return 0; }
11.计算阶乘
#include <bits/stdc++.h> using namespace std; int f(int x) { if (x == 0) return 1; return f(x - 1) * x; } int n; int main() { cin >> n; cout << f(n) << endl; return 0; }
12.求第n个斐波那契数
#include<bits/stdc++.h> using namespace std; int n; int main(){ cin>>n; for(int i=1;i<=n;i++){ int a; cin>>a; int x[40]; x[1]=x[2]=1; for(int i=3;i<=a;i++) x[i]=x[i-1]+x[i-2]; cout<<x[a]<<endl; } return 0; }
13.求 1+2+3+...+N 的值
#include<bits/stdc++.h> using namespace std; int f(int n){ if(n==1)return 1; return f(n-1)+n; } int main(){ int n; cin>>n; cout<<f(n)<<endl; return 0; }
14.阿克曼(Ackermann)函数
#include <bits/stdc++.h> using namespace std; int a, b; int ack(int a, int b){ if (a == 0) return b + 1; if (b == 0) return ack(a - 1, 1); // 递归边界 return ack(a - 1, ack(a, b - 1)); // 函数递归调用 } int main(){ cin >> a >> b; cout << ack(a, b); }
15.digit 函数
#include<bits/stdc++.h> using namespace std; char a[20];//以字符串的形式存储整数 int k,lena;//lena表示字符串的长度 int main() { cin>>a>>k; lena=strlen(a);//strlen函数返回字符数组的长度 cout<<a[lena-k];//输出右边第k位 return 0; }
16.求 f(x,n)
​ #include <cstdio> #include <cmath> using namespace std; inline double f(double x, int n) { if(n > 1) return sqrt(n + f(x, n - 1)); else return sqrt(1 + x); } ​
17.再求 f(x,n)
18.进制转换
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 19:49:13

SL6Pro与SDR6联动:实时频谱分析与软件无线电的协同应用

在实际无线电信号分析工作中&#xff0c;单一设备往往难以同时满足高精度测量和实时监听的需求。SL6Pro作为一款实时频谱分析仪&#xff0c;能够覆盖9kHz至40GHz的宽频率范围&#xff0c;提供精确的频谱测量&#xff1b;而SDR6软件无线电接收机则擅长信号的实时捕获和解调。将两…

作者头像 李华
网站建设 2026/7/14 19:44:42

华为MetaERP AI 本体论:设计哲学、底层实现、ERP 全流程落地(财务 / PTP/OTC 端到端打通)一、核心基础:什么是 AI 本体论(面向企业 ERP 场景,非纯哲学)1. 本体论基

AI 本体论&#xff1a;设计哲学、底层实现、ERP 全流程落地&#xff08;财务 / PTP/OTC 端到端打通&#xff09;一、核心基础&#xff1a;什么是 AI 本体论&#xff08;面向企业 ERP 场景&#xff0c;非纯哲学&#xff09;1. 本体论基础定义AI 领域本体&#xff08;Ontology&am…

作者头像 李华
网站建设 2026/7/14 19:44:20

为什么92%的中大型企业放弃纯API方案?ChatGPT技术栈选型必须回答的7个合规性问题(GDPR+等保2.0+信创适配清单)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;ChatGPT技术选型的合规性危机本质 当企业将ChatGPT类大语言模型集成至核心业务系统时&#xff0c;表面是效率跃升&#xff0c;深层却是数据主权、算法透明度与监管适配性的三重失衡。合规性危机并非源于模型性…

作者头像 李华
网站建设 2026/7/14 19:43:48

DeepSeek接入Claude Code:3分钟配置AI编程助手

今天来看一个实用的技术方案&#xff1a;如何将 DeepSeek 接入 Claude Code&#xff0c;让 AI 帮你写代码。这个组合最大的优势是不需要特殊网络环境&#xff0c;直接在国内网络环境下就能使用&#xff0c;而且配置过程简单&#xff0c;3分钟就能搞定。Claude Code 是一个运行在…

作者头像 李华