用1,2,3,...,9组成3个三位数abc, def和ghi,每个数字恰好使用一次,要求abc:def:ghi = 1:2:3。按照"abc def ghi"的格式输出所有解,每行一个解。提示:不必太动脑筋。

原理是遍历所有数字再进行筛选,优点是简单容易实现,缺点是程序计算的时间较长。

#include <stdio.h>
#define A 100
#define B 999
//题目:输出[1,9]其中三位组成的三位数,abc,def,ghi,每个数字恰好使用一次,并且要求abc:def:ghi=1:2:3。 int main(void)
{int i,j,k,n,m,boo_l=1;                                  //数1,数2,数3,用于循环赋值,用于循环赋值//boo_l用来假定每一个数都是满足条件的,在往后的判断中,不符合条件的数只要改变的boo_l的值就很容易让程序知道这个数符不符合条件 int count[10][2];                                     //用于计算[0,9]出现的次数  for(i=A;i<=B;i++)                                     //有三个数字,所有三个循环                         for(j=A;j<=B;j++)for(k=A;k<=B;k++){     for(n=0;n<=9;n++){                        //初始化计数器,用来筛选带有重复数字的数 count[n][1]=n;                       //比较对象                count[n][2]=0;                       //计数器 }if(2*i == j && 3*j==2*k && 3*i == k){     //判断条件1 for(m=0;m<=9;m++){                     //用于统计i中[0,9]出现的次数 if(i/100==count[m][1])count[m][2]++;if(j/100==count[m][1])count[m][2]++;if(k/100==count[m][1])count[m][2]++;}for(m=0;m<=9;m++){                     //同上 if(i/10%10==count[m][1])count[m][2]++;if(j/10%10==count[m][1])count[m][2]++;if(k/10%10==count[m][1])count[m][2]++;}for(m=0;m<=9;m++){                     //同上 if(i%100%10==count[m][1])count[m][2]++;if(j%100%10==count[m][1])count[m][2]++;if(k%100%10==count[m][1])count[m][2]++;}for(m=0;m<=9;m++){                    //判断并排除带有重复数字的数 if(count[m][2]>1){boo_l=0;break;}    }if(boo_l){                           //输出满足条件的数字 printf("boo_l=%d %d %d %d\n",boo_l,i,j,k);}boo_l=1;                              //重置boo_l的数值 }}  return 0;
}

反思:过程中用了数组,按照正常的章节进度,这个问题可以不使用数组解决,在输出符合条件的数字上浪费了过多的调试时间,没有很好的理解嵌套循环的原理已经其中语句的执行方式。

算法竞赛入门经典第二版 2-6排列相关推荐

  1. 补学图论算法:算法竞赛入门经典(第二版)第十一章:

    补学图论算法:算法竞赛入门经典(第二版)第十一章: 倒排索引还没有实现! 下面是左神的图论算法,并查集笔记.和一个美团题目. ''' https://www.nowcoder.com/live/11? ...

  2. UVA-12171 雕塑 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 这道题目在<算法竞赛入门经典第二版>书中标注了星号,也是第一道出现星号的 ...

  3. 算法竞赛入门经典第二版课后习题答案第二章

    算法竞赛入门经典第二版课后习题答案 第二章 习题2-1水仙花数 输出100-999中的所有水仙花数.若三位数ABC满足ABC=A^3+B^3+C^3,则称其为水仙花数.例如153=1^3+5^3+3^ ...

  4. UVA-814 邮件传输代理的交互 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 #include<iostream> #include< ...

  5. UVA-1598 交易所 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 有意思的一个题目.书上说这是一个不错的优先队列练习题,但实际上它其实是一个 ...

  6. 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 习题(12/14)

    文章目录 说明 习题 习6-1 UVA 673 平衡的括号 习6-2 UVA 712 S - 树 习6-3 UVA 536 二叉树重建 习6-4 UVA 439 骑士的移动 习6-5 UVA 1600 ...

  7. 算法竞赛入门经典第二版:循环结构程序设计实例与习题

    实例: 1.阶乘之和 输入n,计算S= 1!+2!+3!+-+n!的末六位. 分析:两个循环,里面循环用于计算不同数的阶乘,外面一个循环用于将所有阶乘相加,核心算法 "for(int i=1 ...

  8. 算法竞赛入门经典(第二版) | 例题4-5 追踪电子表格中的单元格 (UVa512,Spreadsheet Tracking,World Finals)(解法二)

    本着清晰明了易懂可以水两篇 的理念,笔者将这道题分两次发布.这是第二种解法. 第一种解法传送门→解法一+提交网址 因为解法1中有详细关于题目和输入输出格式等的介绍,这里就不过多赘述了. 分析: 一些初 ...

  9. 算法竞赛入门经典(第二版) | 习题3-5 谜题 (UVa227,Puzzle)(World Finals 1993)

    乍一看是一个大水题,但World Finals这两个词标示着老子世界决赛真题虽然题目很水但是数据就能卡死你.整整搞了五个小时,期间经历过崩溃(花了这么多时间搞一道大水题,还没AC),但好在坚持下来了, ...

  10. 算法竞赛入门经典(第二版) | 例题4-3 救济金发放 (UVa133,The Dole Queue)

    提目(提交)链接→UVa-133 百度翻译→百度翻译 没使用过该网站的同学请猛戳这里→vJudge教程 分析: 最开始的固有思维是循环就用循环链表,其实完全可以把它看成一个大一点的周期类型题(一个大周 ...

最新文章

  1. mysql用户权限与安装Linux操作系统
  2. C函数 mktemp
  3. 关于Git你必须知道的
  4. 2021-03-15 final value theorem 终值定理
  5. 《Microsoft Sql server 2008 Internals》读书笔记--第十一章DBCC Internals(11)
  6. JAXB 有两个名为 ** 的属性,类的两个属性具有相同名称 **解决方案
  7. 本机Android应用程序教程:WhatsApp克隆
  8. python fortran混编 ctypes_关于python调用fortran编译的dll的问题
  9. matlab钢材切割,一种基于MATLAB的钢材裂纹扩展速率试验数据处理方法
  10. python之web框架(3):WSGI之web应用完善
  11. 校园卡管理系统实验报告c语言,校园卡管理系统-C语言.doc
  12. 使用影子系统后win10导致的蓝屏解决办法
  13. 我的软件开发理念和流程
  14. matlab画平面风羽图(彩色)
  15. 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 6.全局防护盲点的总结上篇
  16. 安全态势感知系统java_代码分析平台CodeQL学习手记(十三) - 嘶吼 RoarTalk – 回归最本质的信息安全,互联网安全新媒体,4hou.com...
  17. 用uc浏览器Scheme打开网址方法
  18. python对象转json字符串,及json字符串的格式化
  19. 徘徊于千八关口未能如愿?黄金是涨是跌?走势分析策略指导
  20. Linux 命名管道 聊天室

热门文章

  1. Java使用百度翻译api
  2. 基于cocos creator 3.4 实现虚拟摇杆
  3. GB7714-1987文后参考文献著录规则
  4. SwiftyJSON源码分析
  5. all country运营商APN接入点名称
  6. 原理图端口符号_电气的原理图和接线图的区别,今天终于弄明白了!
  7. LM358芯片中文资料(搬运)
  8. 数据恢复软件分享(第二篇)
  9. 用友nc java下载_用友nc的java插件下载
  10. 国科大学习资料--矩阵分析与应用(李保滨)--2017年期末考试试卷