c算法

2024/4/13 21:35:37

C语言-----计算1*2*3+3*4*5+5*6*7+...+99*100*101的值

代码如下&#xff1a; //计算1*2*33*4*55*6*7...99*100*101的值 #include<stdio.h> int main() {long i;long term, sum 0;for (i 1; i < 99;i2) {term i*(i 1) * (i 2);sum sum term;printf("term%ld*(%ld 1) * (%ld 2)\n",i,i,i);printf("s…

C语言-----二分查找(折半)和冒泡排序

代码实现如下&#xff1a; 1. #include<stdio.h> //编写函数实现冒泡排序 void bubble_sort(int arr[],int sz) {int i 0;for (i 0; i < sz - 1;i) {int j 0;for (j 0; j < sz - 1 - i;j) {if (arr[j]>arr[j1]) {int tmp arr[j];arr[j] arr[j1];arr[j 1…

C语言-----求素数的n种境界

//素数的定义&#xff1a;质数&#xff08;prime number&#xff09;又称素数&#xff0c;有无限个。一个大于1的自然数&#xff0c; //除了1和它本身外&#xff0c;不能被其他自然数&#xff08;质数&#xff09;整除&#xff0c; //换句话说就是该数除了1和它本身以外不再有其…

C-----递归与迭代(递归求n!和求第n个斐波那契数)

所谓递归&#xff0c;说的简单点&#xff0c;就是函数自己调用自己&#xff0c;然后在某个特定条件下。结束这种自我调用。如果不给予这个结束条件&#xff0c;就成了无限死循环了。这样这个递归也就毫无意义了。 它的特点是&#xff0c;一个过程运算中再次用到该过程。 他的思…

C语言-----直接插入排序(欢迎采纳)

代码如下&#xff1a; #include<stdio.h> void Insert_Sort(int arr[], int sz) {int i, j, tmp;for (i 1; i < sz; i) {tmp arr[i];for (j i - 1; j > 0 ; j--) {if (tmp < arr[j]) {arr[j 1] arr[j];}else {break;}}arr[j 1] tmp;} } int main() {int …

C语言0基础--第九回--矩形面积与周长

矩形面积与周长&#xff1a; #include <stdio.h> #define pi 3.14159 int main() {int a,b;scanf("%d %d",&a,&b);if(a>0&&b<1000)printf("%d\n%d\n",(ab)*2,a*b);return 0; }其他满分&#xff1a; #include <stdio.h>…

C语言0基础--第八回--梯形面积

梯形面积&#xff1a; 注意&#xff1a;要保留3位小数&#xff0c;要除以2.0&#xff0c;不是整数2 #include <stdio.h> int main() {int up,down,height;scanf("%d %d %d",&up,&down,&height);printf("%.3f\n",(updown)*height/2.0…

动态规划-凸多边形最优三角形剖分

一.题目概述 ①通常&#xff0c;用多边形顶点的逆时针序列表示凸多边形&#xff0c;即P{V0, VI, … Vn 1}表示具有n条V0V1、 V1V2、 … Vn-1Vn的凸多边形。其中&#xff0c;约定V0Vn。 ②多边形的三角剖分是指将多边形分割成互不相交的三角形的弦的集合T。 凸多边形最优三角剖分…

C语言0基础--第七回--圆的周长与面积

圆的周长与面积&#xff1a; #include <stdio.h> #define pi 3.14159 int main() {float a;scanf("%f",&a);printf("%.6f\n%.6f\n",2*pi*a,pi*a*a);return 0; }其他满分&#xff1a; 1&#xff1a;没有用宏定义 #include<stdio.h> int m…

C语言-----乘法口诀表打印(多种样式)欢迎采纳

直接上代码&#xff01;&#xff01;&#xff01; 1.第一种乘法口诀表&#xff08;正三角&#xff09;&#xff1a; #include<stdio.h> int main() {//第一种int i 0;for (i 1; i < 9; i) {int j 1;for (j 1; j < i; j) {printf("%d*%d%-3d", i, j, …

算法笔记p335堆

目录 堆定义堆建堆&#xff08;以大顶堆为例&#xff09;删除堆顶元素插入元素 堆排序排序思路代码实现 堆 堆是一颗完全二叉树&#xff0c;树中每个结点的值都不小于&#xff08;或不大于&#xff09;其左右孩子结点的值。 大顶堆&#xff1a;父亲结点的值大于或等于孩子结点…

判断素数(质数)

题目要求&#xff1a;对于输入一个整型的数判断是否为素数 程序思路&#xff1a;判断一个数为素数的本质是除了自己和1之外没有整除数的话就是素数。最差的做法就是从小于这个数和大于2这个范围内的所有整数都扫一遍。蛮横法表现出来的效率就是太低&#xff0c;为了寻找更好的…

C/C++算法练习实例

算法练习实例 题目&#xff1a;有1、2、3、4个数字&#xff0c;能组成多少个互不相同且无重复数字的三位数&#xff1f;都是多少&#xff1f; 1.程序分析&#xff1a;可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列(x!y&&x!z&a…

[解题报告]【第36题】给定一个数,判断这个数是不是素数

全文目录&#x1f381;主要知识点素数判定&#x1f4d3;课后习题866. 回文素数&#x1f4d1;写在最后今天是c语言基础打卡的第36天,主要内容是素数的判定法&#xff0c;希望大家能够理解呢&#xff0c;我就给大家记一下重点&#xff0c;给点课后题提示0.0。 相关链接&#xff…

C语言-----猜数字小游戏(逐步完善)

*****猜数字小游戏原理&#xff1a;计算机随机产生一个数字&#xff0c;之后由用户来猜&#xff0c;再比较两个数大小即可。 **1.**先看一下初级代码&#xff0c;用到了rand&#xff08;&#xff09;函数&#xff0c;但是直接使用这个函数的话会有一些缺陷。就比如说&#xff…

C语言----- 4/π=1-1/3+1/5-1/7+...,编程计算π的近似值,直到最后一项的值小于10-4次方为止 //输出π的值,并统计累加的项数

代码如下&#xff1a; //利用 4/π1-1/31/5-1/7...,编程计算π的近似值&#xff0c;直到最后一项的值小于10-4次方为止 //输出π的值&#xff0c;并统计累加的项数 #include<stdio.h> #include<math.h> int main() {int i;int count 0;double sign 1;double sum1…

算法笔记p142快速排序

目录 快速排序划分快排 随机划分的快速排序 快速排序 快速排序是排序算法中平均时间复杂度为O(nlogn)的一种算法。 划分 快排的实现需要解决划分的问题&#xff1a;对于一个序列A[1]、A[2]、……、A[n]&#xff0c;从中选取一个枢轴&#xff08;或主元&#xff09;&#xff…

建立一个单向链表的步骤(C语言)

建立一个单向链表建立一个单向链表的步骤要点总结导入假设题目分析建立单链表的具体步骤具体代码及相关注解建立一个单向链表的步骤要点总结 导入 在建立一个单向链表时&#xff0c;对于头结点head有两种情况&#xff0c;一是头结点不添加任何元素&#xff0c;仅作使用指针域&…

铺方格(升级版递推)详细解答

题目: 有一个大小是2xN的网格,现在需要用2种规格的骨牌铺满,骨牌的规格分别是2x1和2x2,请计算一共有多少铺设的方法。(从左向右铺) 输入: T组数据,N网格列数 (0<N<50) 输出: 所有方案m Sample Input 1 3 2 Sample Output 1 5 3 解题思路: 这道题和超级楼梯有异曲同工…

简要介绍康托展开

本篇文章并不会详细讲解康托展开的数学原理&#xff0c;有兴趣的朋友可以另行寻找。 康托展开 作用&#xff1a;判断这个数在其各个数字全排列中从小到大排第几位。比如 132&#xff0c;在1、2、3的全排列中排第2位。 首先定义一个特殊的进制&#xff1a;0! 1! 2! 3! 4! ... …

函数递归大总结,码住就完事啦

目录 #前言 #一、什么是递归 #二、递归的必要条件 #三、递归的步骤 #四、递归的一些应用例题 熬夜早起肝博客&#xff01;&#xff01;冲&#xff01;&#xff01; #前言 大家好&#xff0c;今天给大家带来递归初步学习的大总结&#xff0c;对刚接触递归的同学来讲是一个非…

C语言例题——输入年份和月份,显示该月有多少天

#include "stdio.h"void main() {int year, month;int days[] {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};printf("请输入年份和月份&#xff1a;");scanf("%d%d", &year, &month);///判断这一年是是不闰年if (year % 400 0 |…

栈-关于顺序栈和链栈创建的相关操作

顺序栈链栈 ps:如果用想要尝试下使用栈来解决问题&#xff0c;可以看看这一篇Leetcode“有效的括号”问题 1.顺序栈 #include<iostream> using namespace std; #define maxSize 10 //定义顺序栈 typedef struct {int data[maxSize];int top; }Stack; //初始化栈 void i…

震惊!算法题中输入时加getchar()的原因竟是因为它!......

起因&#xff1a; 今天在做一道跟栈有关的简单题&#xff0c;发现下面有这样一行提示 在打完代码后调试报错&#xff0c;第一个循环总是不显示。 在经过研究后我发现&#xff0c;原来是cin后的换行符被getchar()读到了&#xff0c;导致没法按照预期要求得到结果。 解决方法…

计算斐波那契数列

计算斐波那契数列算法的研究 斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列、因数学家列昂纳多斐波那契&#xff08;Leonardoda Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xff0c;指的是这样一…

单源最短路径(分支限界)

优先级&#xff1a;当前路径长度 剪枝函数&#xff1a;由于图G中各边的权均非负&#xff0c;所以结点所对应的当前路长也是解空间树中以该结点为根的子树中所有结点对应的路长的一个下界。扩展结点的过程中&#xff0c;一旦发现一个结点的下界不小于当前找到的最短路长&#x…

[解题报告](第19讲) 进制转换(一) - 入门

主要目录 零、写在前面 这是打卡的第十九天&#xff0c;今天题目比较简单&#xff0c;就是题量巨大&#xff0c;&#xff0c;主要知识点在 《算法零基础100讲》(第19讲) 进制转换(一) - 入门https://blog.csdn.net/WhereIsHeroFrom/article/details/120875977https://blog.csd…

[解题报告]《算法零基础100讲》(第45讲) 位运算 (位或) 进阶

☘前言☘ 今天是算法零基础打卡的第45天&#xff0c;题目本身不难&#xff0c;主要是为了理解位运算的。上链接&#xff1a; 《算法零基础100讲》(第45讲) 位运算 (位或) 进阶 &#x1f9d1;&#x1f3fb;作者简介&#xff1a;一个从工业设计改行学嵌入式的年轻人 ✨联系方式&…

2019年PAT甲级冬季考试真题及参考答案

1164(20 图形输出 逻辑题 注意用string&#xff0c;getchar吸收换行符) 7-1 Good in C (20分) When your interviewer asks you to write “Hello World” using C, can you do as the following figure shows? Input Specification: Each input file contains one test c…

蓝桥——输出所有5位二进制

蓝桥——输出所有5位二进制 输出如00000、00001、00010这样的所有5位二进制数&#xff0c;一共32个 我想到了三个方法 1、暴力法 5个循环 #include <stdio.h>int main() {for(int a 0; a < 1; a)for(int b 0; b < 1; b)for(int c 0; c < 1; c)for(int d…

算法笔记p93_进制转换

目录 P进制转Q进制P进制转十进制十进制转Q进制 P进制转Q进制 将P进制数x转换为十进制数y。将十进制数y转换为Q进制数z。 P进制转十进制 按权相加法&#xff1a; int pTod(int x, int P) { // x为P进制数int y 0, weight 1; // y为十进制结果,weight为…

C语言-----交换两个整型变量(三种方法)

面试中遇到这种题你会怎么做&#xff1f;&#xff08;按位异或的规律我写在了结尾&#xff09; 题目&#xff1a;a3&#xff0c;b5&#xff0c;c语言来编程交换两个整型变量的值&#xff0c;即使得a5&#xff0c;b3. 但是不能用到第三个变量 **1.**首先看下非常普遍的一种方法&…

C语言----简单选择排序(欢迎采纳)

代码如下&#xff1a; #include<stdio.h> void Select_Sort(int arr[],int sz) {int i, j, tmp;for (i 0; i < sz - 1;i) {int min arr[i];int minIndex i;for (j i 1; j < sz;j) {if (arr[j]<min) {min arr[j];minIndex j;}}tmp arr[i];arr[i] arr[m…

C语言-----计算水仙花数(欢迎采纳)

代码如下&#xff1a; //计算水仙花数&#xff0c;水仙花数是指各位数字的立方和等于该数本身的三位数。例如&#xff1a; //153是水仙花数&#xff0c;因为1531^33^35^ 请计算并输出所有的水仙花数 #include<stdio.h> int main() {int a, b, c, i;for (i 100; i < …

算法笔记p154最大公约数和最小公倍数

目录 最大公约数辗转相除法证明例子代码实现 最小公倍数代码实现 最大公约数 正整数a与b的最大公约数是指a与b的所有公约数中最大的那个公约数&#xff0c;一般用gcd(a, b)表示a和b的最大公约数。 辗转相除法 设a、b均为正整数&#xff0c;则gcd(a, b) gcd(b, a % b)。即被…

C语言-----计算1-1/2+1/3-1/4+....+1/99-1/100+....直到最后一项的绝对值小于10-4为止

代码如下&#xff1a; //计算1-1/21/3-1/4....1/99-1/100....直到最后一项的绝对值小于10-4为止 #include<stdio.h> #include<math.h> int main() {int n 1;float term 1.0, sign 1, sum 0;while (n<1e4) {term term * sign / n;sum sum term;sign -si…

解凸包问题5种算法

转载原文&#xff1a;http://blog.csdn.net/bone_ace/article/details/46239187 前言&#xff1a; 首先&#xff0c;什么是凸包&#xff1f; 定义&#xff1a;对于平面上的一个点集合&#xff08;有限或无限&#xff09;&#xff0c;如果以集合中任意两点P和Q为端点的线段…

0-1背包问题(分支限界法)

需求分析 0.问题描述 给定一背包的容量C&#xff0c;和n个物品的重量wi价值vi&#xff0c;求在背包容量允许的条件下能装入的最大价值 1.问题分析 ①解空间&#xff1a;子集树&#xff0c;第i层每个节点有两棵子树&#xff1a;选择物品i&#xff0c;不选择物品i ②优先队列…

C语言-----利用sinx≈x^3/3!+x^5/5!-x^7/7!+x^9/9!-....,计算sinx的值,直到最后一项的绝对值小于10-5次方为止

代码如下&#xff1a; //利用sinx≈x^3/3!x^5/5!-x^7/7!x^9/9!-....,计算sinx的值&#xff0c; //直到最后一项的绝对值小于10-5次方为止 #include<stdio.h> #include<math.h> int main() {int n 1, count 1;float x;double sum, term;printf("Input x:&quo…

算法笔记p328_并查集

目录 并查集的定义并查集的基本操作初始化查找合并 路径压缩 并查集的定义 并查集是一种维护集合的数据结构&#xff0c;支持下面两个操作&#xff1a; 合并&#xff1a;合并两个集合。查找&#xff1a;判断两个元素是否在一个集合。 并查集用一个数组实现&#xff1a; int…

7-6 敲笨钟 (10分)(附详细讲解)

微博上有个自称“大笨钟V”的家伙&#xff0c;每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性&#xff0c;还会糟改几句古诗词。其糟改的方法为&#xff1a;去网上搜寻压“ong”韵的古诗词&#xff0c;把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰&…

PID算法原理及模板讲解

很早都想写一栏关于PID算法的专栏&#xff0c;整个大学期间把谈恋爱的时间都拿来搞PID算法了&#xff08;这样你们还不信我是真的搞PID的嘛。。&#xff09;。为了学习PID算法买过平衡小车之家的平衡车&#xff08;最后拆成玩具了&#xff09;&#xff0c;买过正点原子的minifl…

assignment to ‘ *‘ form incompatible pointer type ‘LinkStack‘{aka ‘ *‘}的问题解决

关于dev上的报错问题1报错样式解决方法报错样式 警告里说&#xff1a;“不能给不同类型的变量赋值” 于是我就ctrl点选了这个波浪线这里&#xff0c;跳转到定义的地方。 一个next结构体成员变量struct StackNode *&#xff0c; 和 一个结构体变量LinkStack&#xff0c; 虽然这…

深入代码优化 (一) 使用分支预测技术

简介 条件分支是指后续具有两路可执行的分支。可以分为跳转分支(taken branch)和不跳转分支(not-taken branch)。不跳转分支&#xff0c;指接下来会顺序执行紧挨着JMP的指令。跳转分支&#xff0c;通过JMP跳转到另外一块内存去执行那里的指令。 是否执行条件跳转&#xff0c;…

深入代码优化 (三) 数据结构布局优化

存储器简介 1980 年之前&#xff0c;cpu 访问内存和访问寄存器的速度是差不多的&#xff0c;但自 1980 年以来&#xff0c;cpu 和内存的性能差距一直在扩大&#xff0c;1980 年 -- 2000 年&#xff0c;cpu 的性能提升了 600 倍&#xff0c;而内存的访问时间只提升了 6 倍。在 …