algorithm
文章平均质量分 66
myway88
这个作者很懒,什么都没留下…
展开
-
合并链表操作
一个面试题要合并两个按递增排序的链表,两个链表中重复元素只记一次,代码如下所示:LinkList mergeList(LinkList ListA,LinkList ListB){ LinkList plHeadA,plHeadB,plTemp; plTemp = ListA; plHeadA = ListA->next; plHeadB = ListB->next; while(plHead原创 2009-08-07 16:34:00 · 326 阅读 · 0 评论 -
编写一个小程序可以求出任意N!的末尾零的个数
分析:不难看出,一个整数若含有一个因子5,则必然会在求N!时产生一个零,因此只需要求1到N中所有数包含因子5的个数即可#include "iostream"using namespace std;void main(){ int a,num,temp; while(cin>>a) { num = 0; for (int i=1;i { temp = i; while(temp原创 2009-08-10 11:12:00 · 634 阅读 · 0 评论 -
绘制正弦曲线——在屏幕上用“*”显示0~360度的正弦函数sin(x)曲线
#include "iostream"#include "math.h"using namespace std;void main(){ double y,m,pi; int x; pi = 3.1415926; for (y=1;y>=0;y=y-0.1) { m = asin(y)*10; for (x=0;x { cout } cout for (x = (int)m;x原创 2009-08-08 12:51:00 · 2585 阅读 · 0 评论 -
绘制余弦曲线——在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线
#include "iostream"#include "math.h"using namespace std;void main(){ double y,m; int x; for (y=1;y>-1;y=y-0.1) { m = acos(y)*10; for (x=0;x { cout } cout for (x=(int)m;x { cout } cout }}原创 2009-08-08 12:53:00 · 1137 阅读 · 0 评论 -
0-1背包问题经典算法(递归实现)
#include "iostream"#define CAPACITY 10#define GOODSNUM 6using namespace std;int nVol[GOODSNUM];int nValue[GOODSNUM];int knapsack(int itemIndex,int vol);void main(){ int i=0,j=0; while(i { cou原创 2009-08-11 15:32:00 · 1422 阅读 · 0 评论 -
0-1背包问题经典算法(二维数组实现)
#include "iostream"#define CAPACITY 10#define GOODSNUM 6using namespace std;void main(){ int i=1,j; int v[GOODSNUM] = {10,12,40,40,40,15}; int c[GOODSNUM] = {1,2,3,5,2,1}; int fun[GOODSNUM+1][C原创 2009-08-11 16:19:00 · 805 阅读 · 0 评论 -
0-1背包问题经典算法(一维数组实现)
//在前两个算法的基础上,算法的空间复杂度由o(GOODSNUM*CAPACITY)降低到o(CAPACITY)#include "iostream"#define CAPACITY 10#define GOODSNUM 6using namespace std;void main(){ int nVolume[GOODSNUM] = {1,2,3,5,2,1}; int nValue原创 2009-08-11 16:20:00 · 818 阅读 · 0 评论 -
背包问题系列算法详解
背包问题是一个关于最优解的经典问题。通常被讨论的最多的,最经典的背包问题是0-1背包问题(0-1 Knapsack Problem)。它是一切背包问题及相关背包问题的基础。本篇博文将详细分析0-1背包问题,并给出0-1背包问题的几种解法,同时也对0-1背包问题的内涵进行延伸,丰富其外延至完全背包问题和多重背包问题,并给出背包问题的算法实现过程,希望对大家有帮助。一、0-原创 2009-08-13 16:24:00 · 970 阅读 · 0 评论 -
将1,2,3,。。。,20这20个连续的自然数排成一圈,使任意两个相邻的自然数之和均为素数。
网上看到很多地方有这个题,但是好像没有多少人用C++实现,今天有时间实现了一下并进行了扩展,N可以为任意的自然数,并不限制于20,供大家参考一下~#include "iostream"#include "math.h"#define N 24 //N maybe any numberusing namespace std;int isPrime(int num);原创 2009-08-23 09:56:00 · 1585 阅读 · 0 评论