C/C++ 经典面试算法题
1.打印杨辉三角
1 #include <stdio.h>2 #include <string.h>3 4 int main()5 {6 int x;7 int a[100][100];8 printf("输入行数\n");9 scanf("%d",&x);
10 for(int i = 0;i<x;i++)
11 {
12 for(int j = 0;j<x;j++)
13 {
14 a[i][j] = 0;
15 }
16 }
17
18 for(int i = 0;i<x;i++)
19 {
20 a[i][0] = 1;
21 }
22
23 for(int i = 1;i<x;i++)
24 {
25 for(int j = 1;j<=i;j++)
26 {
27 a[i][j] = a[i-1][j] + a[i-1][j-1];
28 }
29 }
30
31 for(int i = 0;i<x;i++)
32 {
33 for(int j = 0;j<=i;j++)
34 {
35 printf("%d ",a[i][j]);
36 }
37 printf("\n");
38 }
39
40 return 0;
41 }
2.斐波那契数列
1 #include <stdio.h>2 #include <string.h>3 4 int func(int n)5 {6 if(0 == n) return 0;7 if(1 == n) return 1;8 else9 return func(n-2)+func(n-1);
10 }
11
12 int main()
13 {
14 int n;
15 scanf("%d",&n);
16 printf("%d\n",func(n));
17
18 return 0;
19 }
3.请使用递归算法编写求N的阶乘函数
1 #include <stdio.h>2 #include <string.h>3 4 int func(int n)5 {6 if(1 == n) return 1;7 return n * func(n-1);8 }9
10 int main()
11 {
12 int n;
13 scanf("%d",&n);
14 printf("%d\n",func(n));
15
16 return 0;
17 }
4.输入两个正整数 m 和 n,求其最大公约数和最小公倍数
1 #include <stdio.h>2 #include <string.h>3 4 int main()5 {6 int x,y,z,j;7 scanf("%d%d",&x,&y);8 if(x>y)9 {
10 z = x;
11 }else{
12 z = y;
13 }
14
15 for(int i = z;i>0;i--)
16 {
17 j = i;
18 if(0 == x%i && 0 == y%i)
19 {
20 break;
21 }
22 }
23 printf("最大公约数为:%d\n",j);
24 printf("最小公倍数为:%d\n",(x*y)/j);
25
26 return 0;
27 }
5.判断从101到200间有多少个素数,并输出
1 #include <stdio.h>2 #include <string.h>3 4 int main()5 {6 int i,j;7 for(i = 101;i<=200;i++)8 {9 for(j = 2;j<i;j++)
10 {
11 if(0 == i%j)
12 {
13 break;
14 }else{
15 if(j == i-1)
16 {
17 printf("%d\n",i);
18 }
19 }
20 }
21 }
22
23 return 0;
24 }
6.写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写
1 #include <stdio.h>2 #include <string.h>3 4 int main()5 { 6 int len,cout = 0; 7 char a[] = "ABCDEFGAa";8 char b = 'a';9 len = strlen(a);
10 for(int i = 0;i<len;i++)
11 {
12 if(a[i] == b || a[i]-32 == b || a[i]+32 == b)
13 {
14 cout++;
15 }
16 }
17 printf("%d\n",cout);
18
19 return 0;
20 }
7.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
1 #include <stdio.h>2 #include <string.h>3 4 int main()5 { 6 int i,a,b,c,cout = 0; 7 printf("打印100-999水仙花个数\n");8 for(i = 100;i<999;i++)9 {
10 a = i/100;
11 b = i/10 %10;
12 c = i%10;
13 if(i == (a*a*a)+(b*b*b)+(c*c*c))
14 {
15 cout++;
16 printf("%d ",i);
17 }
18 }
19 printf("水仙花个数为:%d\n",cout);
20
21 return 0;
22 }
8.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1 #include <stdio.h>2 #include <string.h>3 4 int main()5 { 6 int i = 0,b = 0,c = 0,d = 0,e = 0; 7 char a[] = "ASsfDGG& adS A18";8 while(a[i] != '\0')9 {
10 if(a[i] >= '1' && a[i] <= '9')
11 {
12 b++;
13 }
14 else if(a[i] >= 'a' && a[i] <= 'z' || a[i] >= 'A' && a[i] <= 'Z')
15 {
16 c++;
17 }
18 else if(a[i] == ' ')
19 {
20 d++;
21 }
22 else
23 {
24 e++;
25 }
26 i++;
27 }
28 printf("数字的个数为:%d,字母的个数为:%d,空格的个数为:%d,其他符号的个数为:%d",b,c,d,e);
29
30 return 0;
31 }
9.输出9*9口诀。
1 #include <stdio.h>2 #include <string.h>3 4 int main()5 { 6 int i,j,num; 7 printf("输出9*9乘法口诀\n");8 for(i = 1;i<=9;i++)9 {
10 for(j = 1;j<=i;j++)
11 {
12 num = i * j;
13 printf("%d * %d = %d ",i,j,num);
14 }
15 printf("\n");
16 }
17
18 return 0;
19 }
10.用*打印菱形图案
1 #include <stdio.h>2 #include <string.h>3 4 int main()5 { 6 int i,j,k;7 for(i = 1;i<=4;i++)8 {9 for(j = 0;j<4-i;j++)
10 {
11 printf(" ");
12 }
13 for(k = 0;k<(2*i)-1;k++)
14 {
15 printf("*");
16 }
17 printf("\n");
18 }
19
20 for(i = 1;i<=3;i++)
21 {
22 for(j = 0;j<i;j++)
23 {
24 printf(" ");
25 }
26 for(k = 0;k<7-(2*i);k++)
27 {
28 printf("*");
29 }
30 printf("\n");
31 }
32
33 return 0;
34 }
11.题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?有多少个。
1 #include <stdio.h>2 #include <string.h>3 4 int main() 5 {6 int a[] = {1,2,3,4};7 int i,j,k,cout = 0;8 for(i = 0;i<4;i++)9 {
10 for(j = 0;j<4;j++)
11 {
12 for(k = 0;k<4;k++)
13 {
14 if(i != j && j != k && i != k)
15 {
16 printf("%d%d%d ",a[i],a[j],a[k]);
17 cout++;
18 }
19 }
20 }
21 printf("\n");
22 }
23 printf("可以组成%d个互不相同且无重复数字的三位数\n",cout);
24 return 0;
25 }
12.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
1 #include<stdio.h>2 3 int main()4 {5 int a,n,s = 0,b;6 printf("请输入相加个数n和加数a\n");7 scanf("%d%d",&a,&n);8 printf("s = %d ",a);9 b = a;
10 for(int i = 0;i<n-1;i++)
11 {
12 s = s + a;
13 a = b + (a * 10);
14 printf("* %d ",a);
15 }
16 s = s + a;
17 printf(" = %d",s);
18
19 return 0;
20 }
13.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。
https://blog.csdn.net/m0_55028858/article/details/125577635
1 #include<stdio.h>2 3 int main()4 {5 int s;6 for(int i = 2;i<1000;i++)7 {8 s = 0;9 for(int j = 1;j<i-1;j++)
10 {
11 if(0 == i%j)
12 {
13 s = s + j;
14 }
15 }
16 if(i == s)
17 {
18 printf("%d是完数\n",s);
19 }
20 }
21 return 0;
22 }
14.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
https://blog.csdn.net/qq_45385706/article/details/110697089
1 #include<stdio.h>2 3 int main()4 {5 double s = 100,h = s/2,k = 0;6 for(int i = 0;i<9;i++)7 {8 k = k + (2 * h);9 h = h/2;
10 }
11 k = k + s;
12 printf("总共经过%lf米,第10次反弹的高度为%lf",k,h);
13
14 return 0;
15 }
15.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
1 #include<stdio.h>2 3 int main()4 {5 int y = 1;6 for(int i = 0;i<9;i++)7 {8 y = (y + 1) * 2;9 }
10 printf("第一天总共有%d颗桃子\n",y);
11
12 return 0;
13 }
16.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1 #include<stdio.h>2 3 int main()4 {5 double x = 2,y = 1,s = 0,x1 = 0;6 for(int i = 0;i<20;i++)7 {8 s = s + (x/y);9 x1 = x;
10 x = x + y;
11 y = x1;
12 }
13 printf("前20项的和为%lf\n",s);
14
15 return 0;
16 }
17.一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同
https://blog.csdn.net/daonanya/article/details/123506362
1 #include<stdio.h>2 3 int main()4 {5 int a = 12321,b,c,d,e;6 b = a/10000;7 c = (a%10000)/1000;8 d = (a%100)/10;9 e = a%10;
10 if(b == e && c == d)
11 {
12 printf("是回文数\n");
13 }
14 else
15 {
16 printf("不是回文数\n");
17 }
18
19 return 0;
20 }
18.两数之和
https://blog.csdn.net/azulgrana02/article/details/109644046
1 #include<iostream>2 #include<vector>3 #include<unordered_map>4 using namespace std;5 6 class node{7 public:8 vector<int> twosun(vector<int>& nums,int target)9 {
10 unordered_map<int,int> record;
11 for(int i = 0;i<nums.size();i++){
12 int num = target - nums[i];
13 if(record.find(num) != record.end()){
14 return {record[num],i};
15 }
16 record[nums[i]] = i;
17 }
18 return {-1,-1};
19 }
20 };
21
22 int main()
23 {
24 node n;
25 vector<int> cur;
26 vector<int> nums = {2,7,11,15};
27 cur = n.twosun(nums,9);
28 for (auto i : cur)
29 cout << i << endl;
30
31 return 0;
32 }
19.整数反转
1 #include <iostream>2 #include <vector>3 using namespace std;4 5 class node{6 public:7 int reverse(int x){8 int ans = 0;9 while(x){
10 ans = ans*10 + x%10;
11 x /= 10;
12 }
13 return ans;
14 }
15 };
16
17 int main()
18 {
19 node n;
20 cout << n.reverse(-123) << endl;
21
22 return 0;
23 }
20.合并区间(力扣56题)
1 #include <iostream>2 #include <vector>3 #include<algorithm>4 using namespace std;5 6 class node{7 public:8 vector<vector<int>> merge(vector<vector<int>>& cur){9 vector<vector<int>> ans;
10 sort(cur.begin(),cur.end());
11 int strat = cur[0][0],end = cur[0][1];
12 for(int i = 1;i<cur.size();i++){
13 if(cur[i][0]>end){
14 ans.push_back({strat,end});
15 strat = cur[i][0];
16 end = cur[i][1];
17 }else{
18 end = max(end,cur[i][1]);
19 }
20 }
21 ans.push_back({strat,end});
22 return ans;
23 }
24 };
25
26 int main()
27 {
28 node n;
29 vector<vector<int>> top;
30 vector<vector<int>> tem;
31 tem.push_back({1,3});
32 tem.push_back({2,6});
33 tem.push_back({8,10});
34 tem.push_back({15,18});
35 top = n.merge(tem);
36 int x = top.size(),y = top[0].size();
37 for(int i = 0;i<x;i++){
38 for(int j = 0;j<y;j++){
39 cout << top[i][j] << " ";
40 }
41 cout << endl;
42 }
43
44 return 0;
45 }
21.插入区间(力扣57题)
1 #include <iostream>2 #include <vector>3 #include<algorithm>4 using namespace std;5 6 class node{7 public:8 vector<vector<int>> insert(vector<vector<int>>& a,vector<int>& b){9 vector<vector<int>> ans;
10 int n = a.size(),i = 0;
11 while(i<n && a[i][1]<b[0]){
12 ans.push_back(a[i++]);
13 }
14 if(i<n){
15 b[0] = min(a[i][0],b[0]);
16 while(i<n && a[i][0]<=b[1]){
17 b[1] = max(a[i++][1],b[1]);
18 }
19 }
20 ans.push_back(b);
21 while(i<n){
22 ans.push_back(a[i++]);
23 }
24 return ans;
25 }
26 };
27
28 int main()
29 {
30 node n;
31 vector<int> tur ={2,5};
32 vector<vector<int>> tem;
33 tem.push_back({1,3});
34 tem.push_back({6,9});
35 vector<vector<int>> top;
36 top = n.insert(tem,tur);
37 int x= top.size(),y = top[0].size();
38 for(int i = 0;i<x;i++){
39 for(int j = 0;j<y;j++){
40 cout << top[i][j] << " ";
41 }
42 cout << endl;
43 }
44
45 return 0;
46 }
22.加一(力扣66题)给定一个数组,在原数组的基础上加一、
1 #include <iostream>2 #include <vector>3 using namespace std;4 5 class node{6 public:7 vector<int> piusone(vector<int>& cur){8 for(int i = cur.size()-1;i>=0;i++){9 if(cur[i]<9){
10 cur[i]++;
11 break;
12 }else{
13 cur[i] = 0;
14 if(i==0){
15 cur.insert(cur.begin(),1);
16 }
17 }
18 }
19 return cur;
20 }
21 };
22
23 int main()
24 {
25 node n;
26 vector<int> tem;
27 vector<int> top = {1,2,3};
28 tem = n.piusone(top);
29 for(int i = 0;i<tem.size();i++){
30 cout << tem[i] << " ";
31 }
32
33 return 0;
34 }
相关文章:
C/C++ 经典面试算法题
1.打印杨辉三角 1 #include <stdio.h>2 #include <string.h>3 4 int main()5 {6 int x;7 int a[100][100];8 printf("输入行数\n");9 scanf("%d",&x); 10 for(int i 0;i<x;i) 11 { 12 for(int j 0;…...
2023年下学期《C语言》作业0x02-分支 XTU OJ 1068 1069 1070 1071 1072
第一题 #include<stdio.h>int main() {int a;scanf("%d",&a);if(a>90&&a<100) printf("A");else printf("B");return 0; } 没有换行,不然会格式错误 第二题 #include<stdio.h>int main() {int a;s…...

JMeter学习第一、二、三天
首先,我们来了解一下到底什么是接口测试与性能测试: 接口测试 定义 接口测试主要关注系统组件之间的交互,确保各个接口按预期工作。这包括验证传递的数据、数据格式、调用的频率和其他与接口调用相关的任何限制。 目的 确保系统的各个组件可…...

常用的分布式ID解决方案原理解析
目录 前言 一:分布式ID的使用场景 二:分布式ID设计的技术指标 三:常见的分布式ID生成策略 3.1 UUID 3.2 数据库生成 3.3 数据库的多主模式 3.4 号段模式 3.5 雪花算法 前言 分布式ID的生成是分布式系统中非常核心的基础性模块&#…...
echarts3D地图打点
1、echarts地图打点加鼠标移上去显示文字 2、1-3和前面的一样echart3D地图 if (res.code 0) {const resData res.data || [];if (resData.length > 0) {for (var i 0; i < resData.length; i) {let arr new Array(2);arr[0] resData[i].longitude || ""…...
分布式主键算法
目录 一、引言二、常见算法介绍雪花算法(Snowflake Algorithm)特性详解优势劣势 UUID(Universally Unique Identifier)特性详解优势劣势 数据库自增主键特性详解优势劣势 分布式数据库的序列(Sequence)特性…...

暴力破解及验证码安全
1.暴力破解注意事项 1、破解前一定要有一个有郊的字典(Top100 TOP2000 csdn QQ 163等密码) https://www.bugku.com/mima/ 密码生成器 2、判断用户是否设置了复杂的密码 在注册页面注册一个,用简单密码看是否可以注册成功 3、网站是…...

程序无法启动,提示“找不到msvcp140.dll”或“msvcp140.dll缺失报错”解决方法
大家好!今天我来给大家分享一下msvcp140.dll丢失的解决方法。我们都知道,在运行一些软件或游戏时,经常会遇到“找不到msvcp140.dll”的错误提示,这会让我们非常苦恼。那么,这个问题该怎么解决呢?下面我将为…...

【Python查找算法】二分查找、线性查找、哈希查找
目录 1 二分查找算法 2 线性查找算法 3 哈希查找算法 1 二分查找算法 二分查找(Binary Search)是一种用于在有序数据集合中查找特定元素的高效算法。它的工作原理基于将数据集合分成两半,然后逐步缩小搜索范围,直到找到目标元素…...

【MySQL实战45讲-基础篇】
基础篇 基础架构 MySQL的基本架构示意图:MySQL可以分为Server层和存储引擎层两部分。 Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函…...
asp.net core中间件预防防止xss攻击
using System; using System.Text.Json; using System.Text.Json.Serialization;namespace CommonUtils {/// <summary>/// newtonsoft的转化器/// 防止xss攻击/// </summary>public class AntiXssNewtonsoftConverter : Newtonsoft.Json.JsonConverter<string&…...

jvm概述
1、JVM体系结构 2、JVM运行时数据区 3、JVM内存模型 JVM运行时内存 共享内存区 线程内存区 3.1、共享内存区 共享内存区 持久带(方法区 其他) 堆(Old Space Young Space(den S0 S1)) 持久代: JVM用持久带(Permanent Space)实现方法…...

C++简单上手helloworld 以及 vscode找不到文件的可能性原因
helloworld #include <iostream>int main() {std::cout << "hello world!" << std::endl;return 0; }输入输出小功能 #include <iostream> using namespace std; /* *主函数 *输出一条语句 */int main() {// 输出一条语句cout << &q…...

掌动智能:性能压力测试的重要性
采用性能压力测试可以帮助企业预估系统容量、提升用户体验以及降低风险和成本。在软件开发过程中,将性能压力测试纳入测试策略的重要一环,将为企业的成功和用户满意度打下坚实的基础。 性能压力测试的重要性: 一、发现性能瓶颈 性能压力测试能…...

kafka日志文件详解及生产常见问题总结
一、kafka的log日志梳理 日志文件是kafka根目录下的config/server.properties文件,配置log.dirs/usr/local/kafka/kafka-logs,kafka一部分数据包含当前Broker节点的消息数据(在Kafka中称为Log日志),称为无状态数据,另外一部分存在…...
Linux-Centos中配置docker
1.安装yum工具 yum install -y yum-utils 2.配置yam源头 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 3.安装docker yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 4. 查看d…...

IDEA-2023-jdk8 HelloWorld的实现
目录 1 新建Project - Class 2 编写代码 3 运行 1 新建Project - Class 选择"New Project": 指名工程名、使用的JDK版本等信息。如下所示: 接着创建Java类: 2 编写代码 public class HelloWorld {public static void main(S…...

【1++的Linux】之进程(五)
👍作者主页:进击的1 🤩 专栏链接:【1的Linux】 文章目录 一,什么是进程替换二,替换函数三,实现我们自己的shell 一,什么是进程替换 我们创建出来进程是要其做事情的,它可…...
用url类来访问服务器上的文件
场景一: package com.guonian.miaosha;import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL;…...

【重拾C语言】六、批量数据组织(二)线性表——分类与检索(主元排序、冒泡排序、插入排序、顺序检索、对半检索)
目录 前言 六、批量数据组织——数组 6.1~3 数组基础知识 6.4 线性表——分类与检索 6.4.1 主元排序 6.4.2 冒泡排序 6.4.3 插入排序 6.4.4 顺序检索(线性搜索) 6.4.5 对半检索(二分查找) 算法比较 前言 线性表是一种常…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...