C语言简单算法举例.pptxVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

简单算法举例

求1×2×3×4×5

S1:p=1

S2:i=2

S3:p=p×i

S4:i=i+1

S5:若i≤5,返回S3;否则结束

设两个变量。一个变量p代表被乘数,一个变量i代表乘数。不另设变量存放乘积结果,而直接将每一步的乘积放在被乘数变量中。

S3到S5组成一个循环。

算法结束,变量p就是所求结果。

举例:求5!的算法用流程图表示

求1-1/2+1/3-1/4+…+1/99-1/100

S1:sum=1

S2:deno=2

S3:sign=1

S4:sign=(-1)×sign

S5:term=sign×(1/deno)

S6:sum=sum+term

S7:deno=deno+1

S8:若deno≤100,返回S4;否则结束

求1-1/2+1/3-1/4+…+1/99-1/100

判定2000-2500年中的每一年是否闰年

S1:y=2000(y为被检测的年份)

S2:若y%4≠0,则输出y”不是闰年”。然后转到S5

S3:若y%4=0且y%100≠0,则输出y”是闰年”。然后转到S5

S4:若y%100=0且y%400=0,则输出输出y”是闰年”,否则输出“不是闰年”然后转到S5

S5:y=y+1

S6:当y≤2500时,转至S2继续执行,否则,算法停止

对于一个大于或等于3的正整数,判断它是不是一个素数

S1:输入n的值

S2:i=2(i作为除数)

S3:n被i除,得余数r

S4:如果r=0,表示能被i整除,则打印n“不是素数”,算法结束;否则执行S5

S5:i=i+1

S6:如果i≤√n,返回S3;否则打印n“是素数”。然后结束

所谓素数,指除1和该数本身之外,不能被其它任何整数整除的数

方法:将n作为被除数,将2到√n之间的各个整数轮流作为除数。如果不能被整除,则n为素数。

判断素数的算法用流程图表示

由上述例子可以看出,算法都是由基本功能操作和控制结构这两个要素组成。

1)计算机基本功能操作四个方面

①逻辑运算 ②算术运算

③数据比较=≠④数据传送(输入输出赋值)

2)算法控制结构决定算法的执行顺序

总结:典型算法

迭代法

穷举法(枚举法)

递推与递归法

迭代法

基本思想:把一个复杂的问题的求解过程转化为相对简单的迭代算式,然后重复执行这个简单的算式,直到得到最终解。

在科学计算领域中,许多问题需要这种解决办法。

特点:迭代公式

如p=p×i;例sum=sum+term

又如:求解方程x3-x-1=0,在x=1.5附近的根。

利用迭代公式x=(x+1)1/3

将x0=1.5代入右端,

得x1=(1.5+1)1/3=1.35721

再用x1作为近似值代入上式右端,

得x2=(1.35721+1)1/3=1.33086

重复以上步骤,逐次求得更精确的解。

穷举法

基本思想:首先根据问题的部分条件预估答案的范围,然后在此范围内对所有可能的情况进行逐一验证,直到全部情况均通过了验证为止。若某个情况使验证符合题目的全部条件,则该情况为本题一个答案。若全部情况验证结果均不符合题目的全部条件,则说明该问题无解。

举例:“百钱百鸡问题”

鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何?

如果用x,y,z分别代表公鸡,母鸡,小鸡的数量,根据题意列方程:

x+y+z=100

5x+3y+z/3=100

根据题意:x,y,z范围一定是0到100的正整数。最简单的方法是在此范围内不断变化x,y,z的值,穷举x,y,z全部可能组合,若满足方程组则是一组解。这样即可得问题的全部解。

递推与递归法

递推法:利用递推公式,由简到繁逐次迭代求解。关键是找到进行递推的通项公式。

递归法:利用递推公式,由繁到简,用简单的问题和已知操作运算来解决问题,要求语言具有反复自我调用的能力。

举例:f(n)=n×f(n-1)f(1)=1

数列通项f(n)=n!

文档评论(0)

趁早学习 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档