程序设计入门3 韩信点兵问题
来源:互联网 发布:php超市会员管理系统 编辑:程序博客网 时间:2024/05/24 05:03
韩信点兵(hanxin)
相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入包含多组数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100。输入到文件结束为止。
样例输入:
2 1 6
2 1 3
样例输出:
Case 1: 41
收获体会:
相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入包含多组数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100。输入到文件结束为止。
样例输入:
2 1 6
2 1 3
样例输出:
Case 1: 41
Case 2: No answer
一,我的答案:
#include<stdio.h>int main(){int a, b, c, i, j, k, sum, sum_1, sum_2, count = 0, flag;while (scanf("%d%d%d", &a, &b, &c) != EOF){flag = 0;sum = 0;for (i = 0;; i++){sum = 3 * i + a;if (sum > 100){printf("Case %d: No answer\n",++count);break;}if (sum >= 10 && sum <= 100){for (j = 0;; j++){sum_1 = 5 * j + b;if (sum_1 == sum){for (k = 0;; k++){sum_2 = 7 * k + c;if (sum_1 == sum_2){printf("Case %d: %d\n", ++count, sum_2);flag = 1;break;}if (sum_2 > sum_1){break;}}}if (sum_1 > sum){break;}if (flag == 1){break;}}}if (flag == 1){break;}}}return 0;}二,标准答案
#include<stdio.h>int main(){int a, b, c, i, count = 0;while (scanf("%d%d%d", &a, &b, &c) != EOF){i = 0;for (i = 0;; i++){if (i > 100){printf("Case %d: No answer\n", ++count);break;}if (i%3 == a && i%5 == b && i%7 == c){printf("Case %d: %d\n",++count,i);break;}}}return 0;}
收获体会:
if语句能几个条件并列在一块,就别弄成if嵌套。
阅读全文
0 0
- 程序设计入门3 韩信点兵问题
- 韩信点兵问题
- 韩信点兵问题
- 韩信点兵问题
- 韩信点兵问题
- 韩信点兵问题
- 韩信点兵问题
- 韩信点兵问题
- 《算法竞赛入门经典》习题2-3 韩信点兵(hanxin)
- 算法竞赛入门经典 习题2-3 韩信点兵(hanxin)
- 韩信点兵问题------凌风
- 谈韩信点兵问题
- 韩信点兵问题算法
- C语言 韩信点兵问题
- 10-语言入门-10-韩信点兵
- 韩信点兵的问题求解方法
- 韩信点兵问题的神解法
- 习题2-3,韩信点兵
- 最速下降算法-matlab源码
- Parallels Desktop13 for Mac(PD虚拟机) V13.2.0中文破解版
- tomact环境
- DLIB在嵌入式上编译总结
- linux中shell变量$#,$@,$0,$1,$2等的含义解释
- 程序设计入门3 韩信点兵问题
- html 文字、图片水平无限滚动
- JDK1.5新特性之---增强for循环
- 深度学习: 从 RoIPooling 到 RoIAlign
- 深度学习第四课第三周
- 软件工程:结对编程
- visual studio 报错 :process with id 'XXXX' is not running
- MATLAB 作图常用命令
- Vue2.0 心法 ==> 第五层:vue2.0 中的axios