资源描述:
《pascal入门算法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、算法设计初步与典型试题枚举搜索31、枚举数字33、百钱买百鸡44、分书问题5逻辑判断65、谁是小偷66、质量评比67、谁获冠军78、四大淡水湖8递推法89、【菲波纳葜数列】810、递推关系的应用“杨辉三角”911、蜜蜂爬行1013、铺骨牌(2000年全国联赛初赛)11倒退1114、贮油点11枚举素数1315、素数1316、歌德巴赫猜想1417、计算真因子14筛法1518、求素数(95年,全国联赛初赛)1519、用筛法统计楼梯级数16最大公约数与最小公倍数1720.求两个正整数的最大公约数17562010聿怀初级中学算法艺术21、求两个正整数的最小公倍数18进制转换1822、十进制转换为n进制1
2、923.N进制数转化为十制数20循环问题2024、猴子选大王2025、狐狸捉兔子2126、约瑟环22数组2327、求递增和递减子序列2428、马鞍数2529、数学黑洞617426方阵填数2730、方阵填数2731、蛇形矩阵:28字符数组与字符串30一、定义30二、字符串的常用内部函数和过程30三、字符数组与字符串应用3136、寻找单词3337、【题目】从键盘输入一个长度不超过40的字符串,按要求进行删除.34数组与字符串应用3638、高精度加法程序3639、回文算术37递归算法3840、利用递归调用手段编程计算N!。3941、利用递归调用技术求菲波纳葜数列的第N项。40562010聿怀初级中学
3、算法艺术42、输入一串以‘.’结束的字符,按逆序输出。4143、用递归函数求最大公约数4244、汉诺塔42嵌套4445、三齿轮问题44搜索算法(回溯、深度优先)4546、八皇后问题4547、求N个数的全排列4748、跳马问题(骑士遍历)4749、深度优先搜索解分书问题5050、四色问题。(图论中的搜索问题)53枚举搜索枚举指的是从可能的解的集合中一一枚举各元素,用题目给定的检验条件判断哪些是无用的,哪些是有用的,能使命题成立即为其解。一般思路:a、对命题建立正确的数学模型,b、根据命题确定数学模型中各变量的范围(即可能解的范围),c、利用循环语句、条件语句逐步求解或证明。1、枚举数字【题目】编
4、程找出四位数abcd中满足下述关系的数:(ab+cd)(ab+cd)=abcd【算法】搜索问题:1000—9999关键是边枚举边分离高位、低位,后判断var:I,m,n,k:integer;beginforI:=1000to9999dobeginm:=Idiv100;n:=I-m*100;k:=(m+n)*(m+n);ifk:=Ithenwriteln(I);end;562010聿怀初级中学算法艺术end.2、钞票换硬币【题目】把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些种换法?【答案】461种【参考程序】vari,j,k,total:integer;begintotal:=0;
5、{总数设为0}fori:=1to99do{i:二分硬币最多99枚}forj:=1to49do{j:二分硬币最多49枚}fork:=1to19do{k:五分硬币最多19枚}ifi*1+j*2+k*5=100thenbeginwriteln(i:3,j:3,k:3);inc(total);{总数加1}end;writeln(total);readln;end.3、百钱买百鸡【题目】一只公鸡值5元,一只母鸡值3元,3只小鸡值1元,现用一百元要买一百只鸡,问有什么方案?【答案】四种方案:公鸡母鸡小鸡①02575②41878③81181④12484varI,j,k,s:integer;BeginS:=0
6、;ForI:=0to20doForj:=0to33doFork:=0to300doBeginif(5*I+3*j+1/3*k)=100and(I+j+k=100)Thenwrite(I,j,k);S:=s+1;562010聿怀初级中学算法艺术End;Write(s:5);End.4、分书问题【题目】有A、B、C、D、E五本书,要分给张、王、刘、┏━┯━┯━┯━┯━┯━┓赵、钱五位同学,每人只能选一本,事先让每人把自┃│A│B│C│D│E┃己喜爱的书法填于右表,编程找出让每人都满意的方┠─┼─┼─┼─┼─┼─┨案。┃张│││√│√│┃┠─┼─┼─┼─┼─┼─┨【答案】四种方案┃王│√│√│││√
7、┃张王刘赵钱┠─┼─┼─┼─┼─┼─┨①CABDE┃刘││√│√││┃②DACBE┠─┼─┼─┼─┼─┼─┨③DBCAE┃赵│√│√││√│┃④DECAB┠─┼─┼─┼─┼─┼─┨┃钱││√│││√┃┗━┷━┷━┷━┷━┷━┛【参考程序】varz,w,l,zh,q,total:byte;procedureoutput;beginwriteln('zhang:',chr(z+64));writeln