c语言经典算法精品资料.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《c语言经典算法精品资料.doc》由会员分享,可在线阅读,更多相关《c语言经典算法精品资料.doc(129页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目 录第一章 数值处理1.1 19头牛11.2 分钱11.3 儿子做题11.4 乐队人数21.5 靶子趣谈21.6 里程碑31.7 位等差41.8 岁数51.9 打碎的鸡蛋61.10 分糖71.11 奖牌71.12 同等遗产81.13 菜票问题81.14 出售金鱼91.15 取苹果101.16 狐狸追兔101.17 报数111.18 娶公主121.19 递增牛群121.20 徒子徒孙13第二章 图形输出2.1 左旋方阵 152.2 旋方阵 162.3 螺阵 182.4 蛇阵212.5 对角矩阵 222.6 魔方阵 242.7 倒三角 252.8 函数曲线 272.9 菱形1 292.10 菱形
2、2 302.11 杨辉三角302.12 字母矩形322.13 字母菱形34第三章 数据处理3.1 勾股数363.2 求素数363.3 亲密数363.4 三非零数373.5 平方和373.6 数目平方383.7 四方定理393.8 求最值403.9 数字反序403.10 数值1403.11 数值问题413.12 十进制转为二进制423.13 十六进制转为十进制423.14 进制 2433.15 尾零个数443.16 求7的34次方 453.17 印度国王453.18 找最值463.19 连续合数473.20 特殊数列473.21 同和偶数483.22 环状素数493.23 回文素数对503.24
3、 求双百513.25 素数算式523.26 外围之和53第四章 过程模拟544.1 称小球544.2 字符滑落564.3 抽奖564.4 选举574.5 算术 1584.6 算术 2594.7 分牌604.8 八皇后634.9 摆棋子664.10过河 694.11 走迷宫71第五章 算式求值 755.1 整数相减765.2 大数相减775.3 实数之和785.4 大数相加805.5 括号配对815.6 大、中、小括号配对835.7 数字重组835.8 计算 1855.9 优先级855.10 计算 2865.11 计算器885.12 化简90第六章 文件、字符、指针处理6.1 自定义TYPE 9
4、26.2 记录排名926.3 记录排序946.4 排名次956.5 自定义COMP976.6 自定义COPY 986.7 统计字母996.8 统计行数单词996.9 语法检查1006.10 长度个数1016.11 统计单词1026.12细胞数目1036.13最长路径106第七章 数字组合1087.1 特殊矩阵 1087.2 对角线和 1097.3 矩阵鞍点 1107.4 特殊三角形 1117.5 古诗算式 1117.6 填数 2 113第一章 数值处理1.1 有一个老人在临死前把三个儿子叫到跟前,告诉他们把19头牛分了,老大分1/2,老二分1/4,老三分1/5,说完就死了.按当地习俗,不能宰牛
5、.问三个儿子各能分多少?(19头牛.c) (答案:10,5,4) 分析:由于19与2、4、5都不能整除,所以就不能用平常的方法来解决这个 问题。但是,如果仔细一点就可以发觉到:1/2+1/4+1/5=19/20,而牛的数量刚 好为19。由此,就不难得出该问题的解决办法: main() int i; for(i=1;i=10;i+) if(i+i/2+2*i/5=19) printf(三个儿子分别分%d头,%d头和%d头.n,i,i/2,2*i/5); getch(); 1.2 一元钱分成1分、2分、5分的,问有多少种分法?(分钱.c) (答案:541种.) main() int i,j,sum
6、=0; for (i=0;i=20;i+) /*变量i为5分钱的数量*/ for (j=0;j=(100-5*i)/2;j+) /*变量j为2分钱的数量,其余的就为一分钱*/ sum+; printf(共有%d种分法.,sum); getch(); =#include int main()int f;int t;int count=0;for(f = 0 ; f = 20 ; f+)for(t = 0 ; t = 50 ; t+)if(f * 5 + t * 2 = 100)count+;printf(%dn,count);return 0;=1.3 父亲对儿子说:做对一道题给8分,做错一道题
7、扣5分.做完26题后,儿子得0分,问儿子做对了几题?(儿子做题.c) (答案10,16) #includestdio.h main() int i; for(i=0;i=26;i+) if (8*i-5*(26-i)=0) /*i为作对的题数,26-i为作错的题数*/ printf(n做对了%d道题,做错了%d道题.,i,26-i); getch(); 1.4 在爱尔兰守神节那天,举行每年一度的庆祝游戏,指挥者若将乐队排成10人、9人、8人、7人、6人、5人、4人、3人和2人时,最后的一排总是缺少一个人,那些人想这个位置大概是给数月前死去的乐队成员凯西还留着位置。指挥者见到总缺一人恼火了,叫大
8、家排成一列纵队前进。假定人数不超过7000人,那么乐队究竟有多少人?(乐队人数.c) (答案:2519人。) main() int i,j; for (i=9;i=2;j-) /*模拟排队过程*/if (i+1)%j!=0) break; /*不满足条件则重新取值*/ if (j=1) /*已满足条件*/printf(乐队共有%d人。,i); exit(0); 1.5 战士们做了一个靶子,靶子分五格,中心是39环,从左起顺时针是23、17、24 、16。 战士小李射了若干枪,每一次都击中靶子,并且正好是100环。问他打了几枪?每枪 多小环?(靶子趣谈.c) (答案:6枪,环数为17,17,17
9、,17,16,16。) main() int i,j,k,l,m,n; for (i=0;i3;i+) /*打中39环的枪数*/ for (j=0;jk=4;j+) /*打中24环的枪数*/ for (k=0;=4;k+) /*打中23环的枪数*/ for (l=0;l=6;l+) /*打中17环的枪数*/ n=100-i*39-j*24-k*23-l*17; /*余下的就为16环的枪数*/ if (n%16=0)/*不用全部循环,可以找最后一个变量在结果中必须满足什么条件,令其符合即可,本例中剩余的环数就应该被16整除,得得的数救赎16环的枪数*/ m=n/16; printf(打中39环%
10、d个,24环%d个,23环%d个,17环%d个,16环%d个,共打了%d枪., i,j,k,l,m,i+j+k+l+m); exit(0); getch(); 1.6 甲、乙两个城市有一条999公里长的公路。公路旁每隔一公里竖立着一个里程碑,里程碑的半边写着距甲城的距离,另半边写着距乙城的距离。有位司机注意到有的里程碑上所写的数仅用了两个不同的数字,例如000/999仅用了0和9,118/881仅用了1和8。算一算具有这种特征的里程碑共有多少个,是什么样的? (答案:40个)分析:从题意中可知每对数仅用了两个不同的数字,并且两个数字之和衡等于9.并且,每对数之和也应衡等于999.解法一: 该解
11、法利用三重循环分别求出每个数字的各位数.因为每个数最多只用两个不同的数字,所以每个数中至少有2个数字是相同的.再根据两个不同数字之和衡等于9,不难得出如下求解过程:(里程碑1.c)main() int i,j,k,m,n=0; for (i=0;i=9;i+) for (j=0;j=9;j+) for (k=0;k=9;k+) if (i=j)&(9-i=k)|(i=k)&(9-i=j)|(j=k)&(9-k=i)|(i=j)&(j=k) m=i*100+j*10+k; printf(%d/%d ,m,999-m); n+; printf(n具有这种特征的里程碑共有%d个.,n); 解法二:仔
12、细分析题意,可得出如下结论:假设两个数字分别为a与b,则b=9-a; 由排列组合原理可知,由a和b所能组成的三位数对如下: aaa/bbb;aab/bba;aba/bab;abb/baa; bbb/aaa;bba/aab;bab/aba;baa/abb.其中,每一对数之和衡等于999(如:aab+bba=999),并且后四对数为前面四对数中每两个数的简单对调(如:aab/bbabba/aab).由此,便可得出如下求解过程:main()int i,j,k,n=0,a4; for (i=0;i5;i+) j=9-i; a0=i*111; a1=i*110+j; a2=i*101+j*10; a3=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言经典算法 精品资料 语言 经典 算法 精品 资料
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内