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 对半检索(二分查找) 算法比较 前言 线性表是一种常…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...