蓝桥杯C穷举和字符串 (2).pptVIP

  1. 1、本文档共45页,可阅读全部内容。
  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:百钱百鸡问题。 公鸡5文钱1只, 母鸡3文钱1只, 小鸡一文钱3只。 100文钱如何卖100只鸡? ? 条件分析 设买 x 只公鸡,y 只母鸡,z 只小鸡,则有: x+y+z=100 5x+3y+z/3=100 且:x、y、z 都是整数; 0 ≤ x ≤ 20; 0 ≤ y ≤ 33; 0 ≤ z ≤ 99; z%3=0。 ? 基本算法思想, 上述方程属于不定方程,解并不唯一,因此,可 用穷举法对 x、y、z 的所有组合情况,测试满足 条件的解。具体是: ? 把x可能值0~20和y可能值0~33用二重循环来组 合,每个x和y组合都可得到z值,即z=100-x-y, 若x、y、z值使5x+3y+z/3=100成立,则该组x、 y、z即为一组所求值。即: 穷举范围: x : 0~20 , y : 0~33 , z : 100-x-y 判断式: z%3==05*x+3*y+z/3==100 ? 另一方法是:把x可能值0~20、y可能值0~33和z 可能值0~99用三重循环来组合,若x、y、z值使 5x+3y+z/3=100和x+y+z=100同时成立,则该组x、 y、z即为一组所求值。即: 穷举范围: x : 0~20 , y : 0~33 , z : 0~99 判断式: z%3==05*x+3*y+z/3==100x+y+z==100 main( ) { int x, y, z, j=1; printf(Possible solutions to buy 100 fowls whith 100 wen:\n); for (x=0; x=20; x++) for (y=0; y=33; y++) { z=100-x-y; if (z%3==05*x+3*y+z/3==100) { printf(%2d:cock=%-2d hen=%-2d chicken=%-2d\n, j, x, y, z); j++;} } } 例2:打印出所有的“水仙花数”。所谓“水仙花 数”是指一个三位正整数,其各位数字的立方和 等于该数本身,例如:153=13+53+33 。 ? 穷举范围:即把所有的三位正整数100~999按题 意一一进行判断。 ? 判断式:如果一个三位正整数n的百位、十位、 个位上的数字分别为i、j、k,则判断式为: n = i3 + j3 + k3 ? 如何分解三位数n的百位、十位、个位: 百位:i = n/100; 十位:j = ( n/10 )%10; 个位:k = n%10; #include stdio.h main() { int n,i,j,k; for( n=100; n=999; n++ ) { i = n /100; j = ( n / 10 ) % 10 ; k = n % 10 ; if ( n== i*i*i + j*j*j + k*k*k ) printf(%d = %d^3 + %d^3 + %d^3\n, n, i, j, k); } } 运行结果: 153 = 1^3 + 5^3 + 3^3 370 = 3^3 + 7^3 + 0^3 371 = 3^3 + 7^3 + 1^3 407 = 4^3 + 0^3 + 7^3 穷举要点 1.一一列举各种情况,不重复,不遗漏 循环 因此要注意循环的起止 解决问题是 是否存在 和有多少可能的那些,找到具体规则 找到能使程序优化的语句,以便缩小有哪些信誉好的足球投注网站范 围,减少程序运行时间。 啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档