C语言程序设计100例之:除法算式.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C 语言程序设计 100 例之( 15 ):除法算式 例 15 除法算式 问题描述 输入正整数 n (2≤ n≤ 68),按从小到大输出所有形如 abcde/fghi=n的表达式。其中 a~i为 1~9 的 一个排列。 输入格式 每行为一个正整数 n (n = 1500 输入 n=0结束。 输出格式 输出满足条件的所有形如 abcde/fghi=n的表达式, 每个表达式占一行, 具体格式参见输出样例。 输入样例 4 20 62 0 输出样例 15768/3942=4 17568/4392=4 23184/5796=4 31824/7956=4 No Solution! 79546/1283=62 94736/1528=62 (1)编程思路。 本例需要先确定好穷举的思路。虽然题目说 a~i为 1~9 的一个排列,但穷举 1~9 的所有 排列显然没有必要。 可以穷举除数 fghi,这是一个 4 位数,最小可为 1234 ,最大可为 9876 ,然后按 fghi*n 计算出 abcde,最后判断这 9 个数字是否不相同。 为判断 9个数字是否相同,可以定义一个数组 flag[10 其中 flag[的i]值表示数字 i在算 式中出现的次数,显然 flag[1]~flag[]值全为 1才满足要求。 另外,在穷举时进行适当优化。若计算出 abcde 小于 12345,显然除数 fghi太小,直接 增大除数进行下次穷举; 若计算出 abcde 大于 98765,显然除数 fghi太大,不再可能找到解,直 接退出穷举循环。 (2)源程序。 #include stdio.h int main() { int n,x,y,i,flag[10],t; while (scanf(%d,n) n!=0) { t=0; for (y=1234;y=9876;y++) { x=y*n; if (x12345) continue; if (x98765) break; for (i=0;i10;i++) flag[i]=0; flag[x/10000]++; flag[x%10000/1000]++; flag[x%1000/100]++; flag[x%100/10]++; flag[x%10]++; flag[y/1000]++; flag[y%1000/100]++; flag[y%100/10]++; flag[y%10]++; for (i=1;i10;i++) if (flag[i]!=1) break; if (i==10) { printf(%d/%d=%d\n,x,y,n); t++; } } if (t==0) printf(No Solution!\n); } return 0; } 习题 15 15- 1 完美立方 问题描述 a b 3 + c3 = 为完美立方等式。例如 1 3 + + =93 。编写一个程序,输出 100 以内的所有 四元组( a, b, c,) ,d 使得 +b3 + = d3,其中 1≤ a b c d≤ 100。 输入格式 无输入 输出格式 100 以内所有满足 a3 +b3 + c3 = d3 的四元组( a, b, c,) d,每行输出 5 组。 输入样例 无输入 输出样例 ( 3, 4, 5, 6) (1,6, 8, 9) ( 6, 8, 10, 12) ( 2, 12, 16, 18) ( 9, 12, 15, 18) ( 3, 10, 18, 19) ( 7, 14, 17, 20) ( 12, 16, 20, 24)( 4, 17, 22, 25) ( 3, 18, 24, 27) ( 1)编程思路。 3 3 3 3因为要求 100 以内所有满足 a +b + c = d 的四元组( a, b, 3 3 3 3 int cube[101],; 且 cube[i]的值赋 i3,以便于后面直接引用。 从 d 出发进行穷举,则穷举范围为 6≤ d≤100 1≤ a≤ d-3 a+1 ≤ b≤ d-2 b+1 ≤c≤ d-1 ( 2)源程序。 #include stdio.h int main() { int i, a, b, c, d,cnt=0; int cube[101]; for (i=1 ; i=100; i++) cube[i]=i*i*i; for (d=6 ; d=100; d++) for (a=1; ad-2; a++ ) { if (cube[d] cube[a]+cube[a+1]+cube[a+

文档评论(0)

墨臻网络 + 关注
官方认证
文档贡献者

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

版权声明书
用户编号:8076027046000022
认证主体苏州墨臻互联网科技有限公司
IP属地江苏
统一社会信用代码/组织机构代码
91320506MA26CPT988

1亿VIP精品文档

相关文档