算法精进之路
查志熙
这个作者很懒,什么都没留下…
展开
-
Dev C++无法调试 :error-begin No source file named xxx
错误描述:error-begin No source file named [文件路径/文件名.cpp]解决方法:配置编译器-g3-static-libstdc++ -static-libgcc -g3gcc.exe -D__DEBUG__g++.exe -D__DEBUG__原创 2020-06-25 18:44:22 · 2716 阅读 · 1 评论 -
递归经典算法-汉诺塔问题求解-C/C++语言实现
问题:古代有一个梵塔,塔内有3个基座A、B、C,开始时A基座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到B座,但每次只允许移动一个盘子,且在移动过程中在3个基座上的盘子都始终保持大盘在下,小盘在上。在移动过程中可以利用C基座做辅助。请编程打印出移动过程 。分析把n阶的汉诺塔问题的模块记作hanoi(n,a,b,c)a代表每一次移动的起始基座,b代表每一次移动的终点基座,c代表每一次移动的辅助基座则汉诺塔问题hanoi(n,a,b,c)等价于以下三步:原创 2020-06-11 23:18:47 · 632 阅读 · 0 评论 -
编写算法:打印具有下面规律的图形。
编写算法:打印具有下面规律的图形。15 28 6 310 9 7 4分析:外层循环:层号i,1–>n内层循环:数组列号j,1–>(n+1-i)i层第 j个数据对应的数组元素是a[i-1+j][j]完整代码:#include <iostream>using namespace std;/*伪代码k =1;for(i=1;i<=n;i=i+1) for( j=1;j<=n+1-i;j=j+1) { a[i-1+j]原创 2020-06-11 23:15:03 · 2132 阅读 · 0 评论 -
算法设计-循环优化-求1/1!-1/3!+1/5!-1/7!+…+(-1)^n/(2n-1)!
求1/1!-1/3!+1/5!-1/7!+…+(-1)^n/(2n-1)!分析:此问题中既有累加又有累乘,准确地说累加的对象是累乘的结果。当前一次循环已求出7!,当这次要想求9!时,没必要再从1去累乘到9,只需要充分利用前一次的结果,用7!x8x9即可得到9!,模型为:An=An-1 x 1/((2n-2)(2n-1)。另外运算sign = sign x(-1);总共也要进行n*(n-1)/2次乘法,这也是没有必要的。下面我们就进行改进。完整代码如下:#include <iostream&原创 2020-06-11 23:08:28 · 1219 阅读 · 0 评论