- 定位:2016年第七届蓝桥杯省赛C/C++ B组试题C
- 原题:凑算式
如图,这个算式中A~I代表1-9的数字,不同的字母代表不同的数字。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8a114403a3c18c8f8f0ffe5e36b44690.jpeg#pic_center)
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
- 属性:枚举
- 难度:破壳
- 独白:
这题考察的很明显啊,就是枚举嘛,都已经将模拟表达式给我们了,还有啥好说的,直接在枚举循环中将模拟表达式作为判断依据不就完事了,当然不同的字母代表不同的数字,唯一值得注意的是这里我们左边会出现分数即为double类型,所以右边也必须为double类型。一定要每个数都为double型才可以啊!比如a一定要为double型即a*(1.0),还有右边式子就也应该等于10.0。还有最为致命的一点,那就是b*(1.0)/c!=b/c*(1.0)。这两个完全不想等啊!比如b=2,c=3,那么左边的式子就等于2/3,而右边的式子就等于0,完全不一样啊!
- 代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int ans;
int main(){
for(int a=1;a<=9;a++){
for(int b<