凑算式,蓝桥杯2016年第3题

来源:互联网 发布:淘宝怎么加入一淘 编辑:程序博客网 时间:2024/05/17 08:48

凑算式
       B      DEF
A + — + -——— = 10
       C       GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。

这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。

答案:29


#include<stdio.h>#include<math.h>//fabs需要此头文件 int main(){int a,b,c,d,e,f,g,h,i,count=0;double x;//注意x定义为double型 for(a=1;a<=9;a++){for(b=1;b<=9;b++){if(b!=a){for(c=1;c<=9;c++){if(c!=b&&c!=a){for(d=1;d<=9;d++){if(d!=c&&d!=b&&d!=a){for(e=1;e<=9;e++){if(e!=d&&e!=c&&e!=b&&e!=a){for(f=1;f<=9;f++){if(f!=e&&f!=d&&f!=c&&f!=b&&f!=a){for(g=1;g<=9;g++){if(g!=f&&g!=e&&g!=d&&g!=c&&g!=b&&g!=a){for(h=1;h<=9;h++){if(h!=g&&h!=f&&h!=e&&h!=d&&h!=c&&h!=b&&h!=a){for(i=1;i<=9;i++){if(i!=h&&i!=g&&i!=f&&i!=e&&i!=d&&i!=c&&i!=b&&i!=a){x=a+(double)b/c+(double)(d*100+e*10+f)/(g*100+h*10+i);//两个double都必须加!!! if(fabs(x-10)<1e-6)//判断值相等的方法,因为分数不可以直接写等于号 {count++;}}}}}}}}}}}}}}}} }}printf("%d",count);return 0;} 


1 0
原创粉丝点击