- 博客(19)
- 收藏
- 关注
原创 快速排序算法
快速排序是一种分而治之的排序算法,将原始数组分解为若干个规模较小的子数组,然后分别对这些子数组进行排序。(2)将数组分为两部分,小于基准元素的放在左边,大于基准元素的放在右边。PS:快速排序算法本身是原地排序算法,不用额外合并步骤。(1)选择一个基准元素(pivot)。(3)对左右两部分递归地进行快速排序。
2024-05-07 10:52:56 199
原创 请问在 1(含)到 1000000 (含)中,有多少个质数的各个数位上的数字之和为 23 。(蓝桥杯校内模拟赛第十三期)
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。请问在 1 (含)到 1000000 (含)中,有多少个质数的各个数位上的数字之和为 23。提示:599 就是这样一个质数,各个数位上的数字之和为 5+9+9=23。只能被 1 和本身整除的数称为质数。
2024-03-19 18:01:36 380
原创 八皇后问题的简单解决方法(递归和回溯)
此代码的核心思想与讲解来源于B站的懒猫老师。通过此代码的学习,还可以利用发散思维,解决N皇后问题以及数独问题。当然方法也有DFS算法+剪枝,哈希表等。最近有一个八皇后问题的相关作业,为解决问题,于是查找资料,并整合了我所得到的信息,得到了如下解决方法。
2022-12-21 12:10:16 195 1
原创 用C语言进行完数的判断(for循环和数组思想)
对于完数的判断,我已经拖拉了很长的时间了。所以决定今天做个了结。闲话我就不多说了,直奔主题,我把理解一并写在了代码中,代码如下:#include <stdio.h> #define max 1001 //定义了一个元素个数很多的数组int main (void){ int i, l, j; int sum, k; int a[max]; int n; printf("请输入一个正整数:"); scanf("%d",&
2022-05-06 21:09:04 1880 1
原创 简单学习数组及其底层逻辑
关于此的学习,我就直奔主题了,直接上代码:#include<stdio.h> //数组是相同数据类型的有序数据的集合 int main(void){ int a[4]; printf("&a[0] = %x\n",&a[0]); //取数组的地址。发现每个数组元素之间相差四个字节, printf("&a[1] = %x\n",&a[1]); //即每个元素占四个字节 ,且各个元素的内存地址连续
2022-04-30 16:13:07 295
原创 简单学习冒泡排序法
冒泡排序法:依次比较相邻的两个元素,重复遍历元素列。作为六大排序算法之一的冒泡排序法无疑很重要,下面就让我们简单的学习一下这个排序算法。直奔主题吧,直接上代码,在代码中发现问题,解决问题:#include <stdio.h> #define N 6 //可以通过调整宏定义来修改需要排序的个数int main(void){ int i, j, t, a[N]; printf("请输入 %d 个整数:\n",N); for (i=0;
2022-04-29 16:33:43 256
原创 用C语言输出斐波那契数列的前N项(用递推法)
题目:输出前20项斐波那契数列的值。分析题目知:这题可借用数组解答较方便(利用数组存储数据的功能)。详细见解我就放在代码中了。代码如下:#include <stdio.h> int main (void){ int i, f[21], n; // 此处只给数组分配21个元素 printf("请输入一个不大于20的数字:"); scanf("%d",&n); f[1]=1; // 存放第一个数 f[2]=1; for(i=3; i<
2022-04-22 19:56:39 4690 2
原创 用C语言中的do...while循环进行多次一元二次方程的求解
之前我发过一篇关于求解元一次方程的博客,但是运行一次只能求解一次。这次我看了一些视频以及学习了循环的相关知识,所以可以更进一步的完善方法和内容,消除相关弊端,即运行一次可以进行多次求解的代码。我们就直接在代码中学习吧。代码如下:#include<stdio.h> #include<math.h> int main(void){ double a, b, c; double delta; double x1, x2; char ch; do { .
2022-04-10 22:51:11 1173 2
原创 用C语言解决成绩评定问题
题目:给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以及90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。简单分析后得知,此问题有至少两种解法。一种是笨方法:用if语句来完成;一种是用switch语句来完成。首先先看“笨方法”:#include<stdio.h>//笨方法 int main (void){ int a; scanf("%d",&a); if(a>=90)
2022-04-07 23:15:56 3658 2
原创 用C语言求解阶乘求和问题(用for循环求解)
在求解此类问题时,分析知一般结果都比较大。所以定义变量时要用 long int 甚至是 long long int 或 double 型,以防止数据溢出。代码如下:#include<stdio.h>int main(){ int n, a; a=1; long long int sn; sn=0; printf("请输入一个您要求到的临界数:"); scanf("%d",&n); for (int i=1;i<=n
2022-04-05 23:21:12 3550
原创 用C语言求解各类求和问题
题目:求以下三数的和,保留2位小数 1~a之和 1~b的平方和 1~c的倒数和。在这里就我遇到的一个问题简单的求解此类问题。代码和个人看法如下:#include<stdio.h>int main(void){ int a, b, c; printf("请输入三个整数:"); scanf("%d %d %d",&a,&b,&c); int i; float s; float j=0,k=0,l=0;
2022-04-03 10:04:43 3064
原创 用C语言求解两个数的最大公约数和最小公倍数
我们先理清一下思路:最小公倍数可由原来两数的乘积再除以最大公约数得到。于是我们要先求最大公约数,再求解的过程中又有辗转相除法和更相减损法等方法,在这里我就用更相减损法求解了。代码和我对代码的理解一并展现:#include <stdio.h>int main (void){ int a, b, m, n,i; //m,n,分别为a,b两个数的过度量;且m为最大公约数,i为最小公倍数 printf("请输入您要求的两位数:"); scanf("%d %d",&a,
2022-03-31 09:00:29 1387
原创 简单学习C语言中的字符串函数
字符串函数也叫字符串处理函数,是在编程语言中用来进行字符串处理的函数。在C语言中有着很重要的地位。以下是我结合代码做出的对字符串函数的实际用处的解释。代码如下:#include<stdio.h>#include<string.h>//C中有大量操作字符串的函数,需要包含头文件<string.h> int main (void){ printf("strlen=%d\n",strlen("motherland"));// motherland 占了七个
2022-03-27 21:20:16 531
原创 用C语言编写一个无限循环语句
今天比较无聊,看了些基本的for循环和while循环语句,就利用它们的特性编写一个无限循环语句。代码如下:#include <stdio.h> int main (){ for( ; ; ) { printf("该语句将永远循环下去!\n"); } return 0;}而while循环语句也可达到此目的:#include <stdio.h> int main (){ while(1) { p
2022-03-25 23:23:13 13025 2
原创 用C语言求解第N项斐波那契数列
斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89...这个数列从第3项开始,每一项都等于前两项之和。斐波那契数列,又称黄金分割数列,显然它又是一个线性递推数列,由数学家莱昂纳多·斐波纳契首次引入此概念。在现代的物理,化学,生物等诸多领域,皆有重大影响。在此求解过程中,我用了if 语句和for循环。话不多说,我就直接上代码了。#include<stdio.h> //1,1,2,3,5,8,13,21,34int mai
2022-03-23 22:39:59 5530
原创 用C语言的for循环求1到100之间奇数的总和,个数和平均值
for循环和if语句一样,默认控制一条语句,所以我们用的时候在for语句后要使用 { } 扣起来。如下:for ( i = 1; i <= 4; ++i){ sum = sum + i;} 在求此题时,首先要了解此题的算法,以及熟用for循环、if语句,明白运算过程。关于我对此题的看法就一并写进代码了。代码如下:#include<stdio.h> //求1到100之间奇数的总和,个数和平均值 int main(void)
2022-03-21 13:11:12 11466
原创 用C语言中的多分支if语句计算利润问题
题目:企业发放的奖金根据利润提成。利润低于或等于100000元的,奖金可提10%;利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成 7.5%;200000<I≤400000时,低于200000元部分仍按上述办法提成,(下同),高于200000元的部分按5%提成;400000<I≤600000元时,高于400000元的部分按3%提成;600000<I≤1000000时,高
2022-03-18 15:29:11 1572 1
原创 用C语言求解一元二次方程的简单方法
在用C语言求解一元二次方程的时候,首先,最重要的肯定是要引入"math.h"这个头文件,其次要会运用相关的数学库函数,如“sqrt”,“delta”等。让我们一起在代码中寻找问题吧。#include <stdio.h>#include <math.h>int main (void){ int a = 1,b = 2,c = 1; float x1 , x2 , delta ; delta = b*b - 4*a*c ; if ( delt......
2022-03-16 11:25:57 60099 13
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人