蓝桥杯决赛之猜算式1
来源:互联网 发布:清镇市各乡镇人口数据 编辑:程序博客网 时间:2024/05/18 02:31
看下面的算式:
□□ x □□ = □□ x □□□
它表示:两个两位数相乘等于一个两位数乘以一个三位数。
如果没有限定条件,这样的例子很多。
但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。
该算式中1至9的每个数字出现且只出现一次!
比如:
46 x 79 = 23 x 158
54 x 69 = 27 x 138
54 x 93 = 27 x 186
.....
请编程,输出所有可能的情况!
注意:左边的两个乘数交换算同一方案,不要重复输出!
要求考生把所有函数写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
对于编程题目,要求选手给出的解答完全符合ANSI C标准,不能使用c++特性;
不能使用诸如绘图、中断调用等硬件相关或操作系统相关的API。
#include<iostream>#include<set>using namespace std;set<int> haha;int check(int n)//如果第二个积数出现过就不必再找了 {set<int>::iterator it;it=haha.find(n);if(it==haha.end())return 1;elsereturn 0;}int main(){for(int a=1;a<=9;a++)for(int b=1;b<=9;b++)for(int c=1;c<=9;c++)for(int d=1;d<=9;d++)for(int e=1;e<=9;e++)for(int f=1;f<=9;f++){int i,j,k;if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&b!=c&&b!=d&&b!=e&&b!=f&&c!=d&&c!=e&&c!=f&&d!=e&&d!=f&&e!=f) { double p=(double)(a*10+b)*(c*10+d)/(e*10+f);//这样可以节省三层循环,但是获得数字不一定是三位数或者是整数,所以我们要判断一下是不是小数 haha.insert(a*10+b);//把第一个成数插入到set容器中去 if(check(c*10+d)&&p==(int)p) { i=(int)p%10; j=(int)p/10%10;k=(int)p/100; //取出每一位 if(k!=0&&j!=0&&i!=0&&i!=a&&i!=b&&i!=c&&i!=d&&i!=e&&i!=f&&j!=a&&j!=b&&j!=c&&j!=d&&j!=e&&j!=f&&k!=a&&k!=b&&k!=c&&k!=d&&k!=e&&k!=f&&k!=i&&k!=j&&i!=j)//判断是不是每一位都满足题意 cout<<a*10+b<<" x "<<c*10+d<<" = "<<e*10+f<<" x "<<k*100+j*10+i<<endl; }}} }
0 0
- 蓝桥杯决赛之猜算式1
- 蓝桥杯之趣味算式
- 蓝桥杯决赛之魔方
- 蓝桥杯--猜算式
- 蓝桥杯 猜算式
- 蓝桥杯 猜算式
- 蓝桥杯-猜算式
- 蓝桥杯模拟 猜算式
- [蓝桥杯]-猜算式
- 【蓝桥杯】【猜算式】
- 蓝桥杯之马虎的算式
- 蓝桥杯决赛之排日程
- 蓝桥杯决赛之危险系数
- 蓝桥杯决赛之组合数
- 蓝桥杯决赛之关联账户
- 蓝桥杯 猜算式 解题报告
- 蓝桥杯模拟赛 猜算式
- 蓝桥杯模拟赛-猜算式
- 解决UITextView 长按手势冲突
- 用数组实现的单链表[C语言]
- web 学习笔记6-JavaScript面向对象
- 芯片命名规则
- Codeforces Round #412 ( Div. 2) D. Dynamic Problem Scoring(贪心)
- 蓝桥杯决赛之猜算式1
- [转] 详解http和https的作用与区别
- js文字收缩展开
- truffle 部署合约
- 机器学习之2-多变量线性回归(Linear Regression with Multiple Variables)
- ActiveMQ学习教程(一)——安装与示例
- [16]匿名函数和闭包
- John Z. Sonmez(约翰 Z.森梅兹【美】)之《软技能:代码外的生存指南》
- 毕业设计那点事 — 源码安装Mysql