算法集
适合算法竞赛或兴趣了解
2015/2/9
计算机
徐一粟
徐一粟(男)——作者
算法均有本人查阅和自己写3
本套算法均是已实现算法2
适合算法竞赛或兴趣了解1
算法集
2015
计算机程序算法
2
/
133
目录
1. 10 进制转 2 进制----------------------------------------------------------------------------------------4
2. 啤酒和饮料 ----------------------------------------------------------------------------------------5
3. 圆的面积 ----------------------------------------------------------------------------------------5
4. 切面条 ----------------------------------------------------------------------------------------6
5. 01 字符串 ----------------------------------------------------------------------------------------7
6. 字母图形 ----------------------------------------------------------------------------------------8
7. 求 n 个数的最大值,最小值,和----------------------------------------------------------------9
8. 杨辉三角形 ----------------------------------------------------------------------------------------10
9. (2 个数)公约数,公倍数(三种算法)-----------------------------------------------------11
10. 歌手大奖赛 --------------------------------------------------------------------------------------16
11. 输出斐波那契数列第 n 项的数值-----------------------------------------------------------------17
12. 输出斐波那契数列每一项的数值-----------------------------------------------------------------18
13. Fibonacci 数列其它问题-----------------------------------------------------------------------------19
14. 求前 n 项的和 1+2+…+n------------------------------------------------------------------------------20
15. 序列求和 --------------------------------------------------------------------------------------21
16. 图形显示 --------------------------------------------------------------------------------------22
17. 星期几 --------------------------------------------------------------------------------------22
18. 16 进制转 10 进制 ------------------------------------------------------------------------------------23
19. 10 进制转 16 进制 ------------------------------------------------------------------------------------24
20. 16 进制转 8 进制 ------------------------------------------------------------------------------------25
21. 判断是否是回文 ---------------------------------------------------------------------------------------26
22. 闰年的判断 ---------------------------------------------------------------------------------------27
23. 输出 c 字母图形 ---------------------------------------------------------------------------------------28
24. 巴斯卡三角形 ---------------------------------------------------------------------------------------28
25. 三色旗 ---------------------------------------------------------------------------------------30
26. 回文数 ---------------------------------------------------------------------------------------32
27. 特殊回文数(普) ------------------------------------------------------------------------------------32
28. 特殊回文数(经) ------------------------------------------------------------------------------------34
29. 特殊的数字 ---------------------------------------------------------------------------------------35
30. 查找整数 ---------------------------------------------------------------------------------------35
31. 操作格子 ---------------------------------------------------------------------------------------36
32. 高精度阶乘 n! ---------------------------------------------------------------------------------------39
33. 老鼠走迷宫 ---------------------------------------------------------------------------------------40
34. 逆序对 ---------------------------------------------------------------------------------------42
35. 数列排序 ---------------------------------------------------------------------------------------45
36. 数列排序(经) ---------------------------------------------------------------------------------------45
37. 第 39 台阶 --------------------------------------------------------------------------------------48
38. 第 39 台阶(非递归) ----------------------------------------------------------------------------------50
39. 最短路径 ——Dijkstar 算法 -------------------------------------------------------------------51
40. 最短路径 ——Floyd 算法 -------------------------------------------------------------------53
3
/
133
41. 区间 K 大数查询 ---------------------------------------------------------------------------------------55
42. 八皇后递归算法 ---------------------------------------------------------------------------------------57
43. 八皇后回溯算法 ---------------------------------------------------------------------------------------61
44. 八皇后回溯算法 2 --------------------------------------------------------------------------------------62
45. 2n 皇后问题 ----------------------------------------------------------------------------------------63
46. 前缀表达式 ----------------------------------------------------------------------------------------65
47. (3 个数)最大最小公倍数 ------------------------------------------------------------------------66
48. 2 的次幂问题 ----------------------------------------------------------------------------------------67
49. 数的全排列问题 --------------------------------------------------------------------------------------69
50. 猴子吃桃 --------------------------------------------------------------------------------------72
51. 角谷定理 --------------------------------------------------------------------------------------72
52. 高斯日记 ---------------------------------------------------------------------------------------73
53. 马虎的算式 ----------------------------------------------------------------------------------------74
54. 黄金分连数 ----------------------------------------------------------------------------------------75
55. 前缀判断 -----------------------------------------------------------------------------------------77
56. 三部排序 -----------------------------------------------------------------------------------------78
57. 翻硬币 -----------------------------------------------------------------------------------------79
58. 李白打酒(递归) ------------------------------------------------------------------------------------81
59. 李白打酒(二进制) ---------------------------------------------------------------------------------82
60. 普利姆算法 -----------------------------------------------------------------------------------------84
61. 深度遍历 -----------------------------------------------------------------------------------------85
62. 广度优先遍历 -----------------------------------------------------------------------------------------87
63. 两个物种 -----------------------------------------------------------------------------------------89
64. 选手答题 -----------------------------------------------------------------------------------------90
65. 比酒量 -----------------------------------------------------------------------------------------91
66. 盒子取球方法(一) ---------------------------------------------------------------------------------92
67. 盒子取球方法(二) ---------------------------------------------------------------------------------93
68. 大数相乘 ------------------------------------------------------------------------------------------95
69. 字母转换为 6 位数字 ------------------------------------------------------------------------------96
70. 打印图形 ------------------------------------------------------------------------------------------98
71. 奇怪的分式 -----------------------------------------------------------------------------------------100
72. 六角填数 -----------------------------------------------------------------------------------------102
73. 蚂蚁感冒 -----------------------------------------------------------------------------------------104
74. 地宫取宝 -----------------------------------------------------------------------------------------106
75. 高精度加法 -----------------------------------------------------------------------------------------109
76. Huffman 树 ----------------------------------------------------------------------------------------110
77. 报时助手 -----------------------------------------------------------------------------------------111
78. 回形取数 -----------------------------------------------------------------------------------------113
79. 龟兔赛跑预测 -----------------------------------------------------------------------------------------114
80. 芯片测试 -----------------------------------------------------------------------------------------116
81. FJ 的字符串 -----------------------------------------------------------------------------------------117
82. Since 之舞 -----------------------------------------------------------------------------------------118
83. 数的读法 -----------------------------------------------------------------------------------------119
84. 完美的代价 -----------------------------------------------------------------------------------------121
4
/
133
85. 矩形的面积交 -----------------------------------------------------------------------------------------123
86. 矩阵乘法 -----------------------------------------------------------------------------------------125
87. 质因数分解 -----------------------------------------------------------------------------------------126
88. 字符串对比 -----------------------------------------------------------------------------------------128
89. 时间转换 -----------------------------------------------------------------------------------------129
90. 出现次数最多的整数 -------------------------------------------------------------------129
91. 捉鬼大师 -----------------------------------------------------------------------------------------131
有些算法在你不明白时,最好在稿纸上走一遍,这样可以更好地理解
算法。有些算法可能已优化,有些未优化,但结果是正确的,可能时
间上和空间上有点浪费。
纯属个人整理,如有差错还请见谅!
算法实现
一,将
10
进制转为二进制
/*
如输入:13
输出:1101
*/
#include<stdio.h>
int fact(int n)
{
if(n<2)//将 2 换成其它数如 8 就可输出 8 进制的结果
return n;
else
{
return fact(n/2)*10+n%2;//将二进制结果整个输出
}
}
int main(void)
{
int n;
5
/
133
printf("Enter n:");
scanf("%d",&n);
printf("%d",fact(n));
return 0;
}
二,标题:啤酒和饮料
/*
啤酒每罐 2.3 元,饮料每罐 1.9 元。小明买了若干啤酒和饮料,一共花了 82.3
元。
我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。
注意:答案是一个整数。请通过浏览器提交答案。
不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。
*/
#include<stdio.h>
int main(void)
{
for(int i=1;i*2.3<82.3;i++)
for(int j=i+1;i*2.3+j*1.9<=82.3;j++)//因为 i 比 j 小,所以 j 从 i+1 开始
{
if(i*2.3+j*1.9>=82.3-0.000001&&i*2.3+j*1.9<=82.3+0.000001)
printf("%d\n",i);
}
return 0;
}
三,圆的面积
/*
问题描述
给定圆的半径 r,求圆的面积。
输入格式
输入包含一个整数 r,表示圆的半径。
输出格式
输出一行,包含一个实数,四舍五入保留小数点后 7 位,表示圆的面积。
说明:在本题中,输入是一个整数,但是输出是一个实数。
对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后 7
位,