算法设计与分析
雾里看花花里看雾
我可以一落千丈,我亦可一鸣惊人。
展开
-
【算法设计与分析】—— 魔方阵 (莫慌莫慌)
魔方阵 (莫慌莫慌)算法题目算法分析代码实现结果示例算法题目上次我们讲了螺旋阵,这次我们来讲魔方阵~戳文章链接:螺旋阵戳视频链接:算法分析最重要的是要知道想要实现输入任意的奇数,输出相应阶数的魔方阵,我们应该要怎么样做,即找出怎么样的规律,使我们更加容易的实现编程,所以我们需要做充分的数学准备工作~魔方阵和螺旋阵的输出是一样的,即在控制位数上,我们要找到最大位数(n*n),并求出相应的位数,在输出时使用%*d格式输出,控制输出位数是相当重要的一步工作~代码实现#原创 2020-05-18 16:14:55 · 1178 阅读 · 0 评论 -
【算法设计与分析】—— 螺旋阵
螺旋阵算法题目算法分析代码实现结果示例算法题目首先题目给出的例子都是带有提示性的,我们看n=3,n=4的异同,找出大致规律,得知我们要分奇偶数情况来输出戳视频链接:再次声明,我没有备稿呀,有一点点憨憨的哈哈哈~算法分析这种类型题目,其实最关键的是我们要找出思路,我们应该怎么样来一步步的存储,这个问题解决了,基本上问题就得以解决了我们这里以层为单位,每层又分为4个部分,左侧,下方,右侧,上方,并且设置外层循环变量i,内层循环变量j,我们需要找出i和j的关系即可在控制输原创 2020-05-18 11:04:21 · 1164 阅读 · 0 评论 -
【算法设计与分析】—— n的阶乘问题(eg:求100的阶乘 结果中的所有位数都精确输出)
n的阶乘问题(eg:求100的阶乘 结果中的所有位数都精确输出)算法题目算法分析代码实现结果示例算法题目其实这个求n的阶乘问题,我们在刚刚学习c语言的时候,应该就有大致的了解过了,那个时候我们可能会设置一个循环变量,或者使用递归方法,但是当n比较大时,我们会怎么做呢?本文主要是将结果存放在int类型的数组中,然后每个单元存放6位数,整体思想还是采用我们小学时的竖乘法。戳视频链接:n的阶乘问题视频讲解再次声明:因为我本人主要是录着玩玩的,所以讲解时并没有备稿~算法分析输出结果时原创 2020-05-17 17:32:00 · 1909 阅读 · 0 评论 -
【算法设计与分析】—— 游戏问题(约瑟夫游戏问题)
游戏问题(约瑟夫游戏问题)算法题目算法分析代码实现结果示例算法题目算法分析特殊点(数到2就退出):流程图如下一般点(数到任意的m就退出):分析图如下配套视频讲解:为了记录自己的学习过程,没有备稿哈哈哈哈哈。代码实现#include<stdio.h>int f(int sum,int value,int n){ if(n==1) return (sum+value-1)%sum; else return (原创 2020-05-16 10:09:22 · 548 阅读 · 0 评论 -
【算法设计与分析】——(2+22+222+2222+……类推到n)
2+22+222+2222+……类推到n算法题目算法分析代码实现结果示例算法题目2+22+222+2222+……类推到nn+nn+nnn+nnnn+nnnnn+……算法分析第一,可能最后n特别大,所以在存储方面,我们考虑使用int类型数组存储结果。第二,由于整个题目很有规律,所以我们在检索信息时,只需要把有用的信息挑选出来,然后输入到计算机中,这样既可以避免浪费,又可以节省时间空间。第三,补充第二点,比如2+22+222+2222+22222+222222,我们不需要把这些数都一个原创 2020-05-16 09:52:43 · 1826 阅读 · 0 评论 -
【算法设计与分析】——高精度✖长整型
高精度✖长整数算法题目算法分析代码实现结果示例算法题目算法分析其实这个问题很简单,但希望引起大家的重视~先求会,再求精~讲解视频链接:代码实现#include<stdio.h>#include<string.h>int main(){ long int multiplicand; //被乘数 char multiplier[256]; //乘数 int s[256]; //乘法结果 long原创 2020-05-16 09:48:05 · 1125 阅读 · 0 评论 -
【算法设计与分析】—— 排列组合问题(三种方法)
排列组合问题算法题目算法分析代码实现结果示例算法题目算法分析第一种和第二种都是利用三重循环来控制,但是对于输入的任意m,我们就不能通过一个程序来控制所有的循环重数来实现,所以我们想到了递归。第三种的话,可以简单认为是从任意的n个数中挑选m个数,m个数从小到大排列的话,最后一个的范围是从n到m,所以从这个地方开始逐步挑选,挑选完了之后就到了倒数第二个,其是从n-1个选出m-1个,在此基础上再倒数第三个,其是从n-2个选出m-2,依此类推,直到最后只剩下一个数,挑选完毕就开始回溯。原创 2020-05-15 09:53:49 · 1686 阅读 · 4 评论 -
【算法设计与分析】—— 整数划分问题 (回溯法)
我前几天写了一篇csdn博客文章:【算法设计与分析】——整数划分问题,使用的是递归方法,今天准备使用回溯法啦啦啦啦啦~上一篇链接:算法设计与分析——整数划分问题(递归法)首先我给大家画了一个流程图:其次我给大家录了一个视频讲解:因为csdn博客中上传的视频目前仅支持腾讯优酷bilibili,所以我上传到资源啦,但是免费哦~视频讲解链接:整数划分问题(回溯法)视频讲解代码实现大家如果还是看不懂代码,可以自己选取一个简单的例子在草稿纸上演示一遍哦~#include<stdio.h>原创 2020-05-14 14:14:48 · 974 阅读 · 9 评论 -
【算法设计与分析】—— 任何正整数都可以用2的幂次方表示
任何正整数都可以用2的幂次方表示算法题目算法分析代码实现结果示例算法题目算法分析代码实现#include<stdio.h>void f(int n,int m){ if(n==1) { switch(m) { case 0:printf("2(0)"); break; case 1:printf("2");原创 2020-05-13 11:25:55 · 2002 阅读 · 1 评论 -
【算法设计与分析】 —— 整数划分问题(递归法)
整数划分问题算法题目算法分析代码实现结果示例算法题目如果只是给了题目没有示例,那其实相对有一定难度的,这个示例给了我们一个更加可视化的思路,当我们以这样的形式展现出来,会发现其中的规律。算法分析针对这个问题:任何一种算法,我们首先尽可能的建立相应的数学模型,这里的数学模型并不是说需要多么高大上,而是把所需解决的问题转化为数学问题,类似于一种从具体到抽象的过程。我们根据上面的示例可以发现:比如对整数6进行划分,我们在每次划分时,都分为两个部分,第一个数为一个部分,其余的为第二个部分原创 2020-05-12 11:33:24 · 1363 阅读 · 1 评论 -
【算法设计与分析】—— 打印图形
打印图形算法题目算法分析代码实现结果示例算法题目找规律的打印表问题一直是我的痛点,就算有时候我找出规律来了,我也不知道怎么编程打印出来,更何况有时候找不出来规律~这个题目其实规律很简单,一眼就可以看出来关键是我们要怎么设计一个算法把它打印出来算法分析首先对于任意一个问题,我们不能仅仅停留在这个问题表面,要发现这一类问题,比如这个就是演化成一个n✖n数组其次要明确数组一般是进行行和列操作的,但是我们在找规律的时候,有时不是在行和列上找到规律的,这时我们可以根据已经找到原创 2020-05-12 09:21:33 · 501 阅读 · 0 评论