- 博客(11)
- 收藏
- 关注
原创 求n个字符的全排列
/* * 对n个不同的字符进行全排列 * 算法思想: * 假设求 1234 的全排列 * ① 把 1 固定,234 求全排,进行递归排列,直到为一个元素,打印所有元素,最后恢复最初的排序 * ② 把 1 和 2 进行交换,把 2 固定,134 求全排列,直到为一个元素,打印所有元素,最后恢复最初的排序 * ③ 同上所示,直到把 4 作为第一个为止。 *
2014-10-29 21:00:45 1857
原创 猴子分桃子
/* * 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把 * 多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的 * 一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? */ #include void ab(int *j, int n) { int t
2014-10-26 00:32:14 541
原创 猴子吃桃问题
/* 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 程序分析:采取逆向思维的方法,从后往前推断。 */ #include #include int main(void) { int
2014-10-24 23:04:35 314
原创 汉诺塔问题
#define _CRT_SECURE_NO_WARNINGS #include #include void move(char c1, char c2) { printf("%c --> %c\n", c1, c2); } void hanoi(int n, char one, char two, char three) { if (n == 1) { move(one, th
2014-10-23 00:15:41 293
原创 古典问题(兔子问题)
/* 题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析:兔子的规律为数列 1,1,2,3,5,8,13,21.... */ #include #include int main(void) { long f1, f2; int i; f1 = f2 = 1;
2014-10-21 23:03:16 986
原创 打印杨辉三角
/* * 程序分析: * 1 * 1 1 * 1 2 1 * 1 3 3 1 * 1 4 6 4 1 * 1 5 10 10 5 1 */ #include #include int main(void) { int a[10][10]; int i, j; for (i = 0; i < 10; i++) { a[i][0] = 1; a[i][i] =
2014-10-20 23:04:34 309
原创 打印出图形(菱形)
/* 题目:打印出如下图案(菱形) * *** ***** ******* ***** *** * 1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for 循环,第一层控制行,第二层控制列。 */ #include #include int main(void) { int i, j, k;
2014-10-20 15:50:55 614
原创 KMP模式匹配算法
#include #include #include /* 求模式串T的的next函数值,并存入数组next中 */ void GetNextval(const char *T, int next[]) { int j = 0, k = -1; next[0] = -1; while (T[j] != '\0') { if (k == -1 || T[j] == T[k])
2014-10-13 14:39:34 263
原创 打印所有的水仙花数
/* 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153 是一个“水仙花数”,因为 153=1 的三次方+5 的三次方+3 的三次方。 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位,十位,百位。 */ #include #include int main(void) { int i, x1,
2014-10-13 00:19:21 345
原创 初始hello world.
/* 以下四种情况的测试都是在Linux平台测试的(gcc) */ /* 第一种情况 */ #include int main(void) { printf("hello world.\n"); /* 输出结果为 hello world. */ return 0; /* 这个程序正常运行 */ } /* 第二种情况 */ #include
2014-10-12 00:54:36 288
原创 链表的增删查改、排序、逆置等操作
#define _CRT_SECURE_NO_WARNINGS #include #include #define ElemType int /* 这里假设为int类型 */ typedef struct LinkList { ElemType data; struct LinkList * next; }Node; /* 创建链表 */ Nod
2014-10-12 00:50:38 370
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人