您的位置:首页 > 其它

第七届蓝桥杯大赛省赛-凑算式

2018-03-21 20:36 295 查看
凑算式



(如果显示有问题,可以参见【图1.jpg】)

这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

比如:

6+8/3+952/714 就是一种解法,

5+3/1+972/486 是另一种解法。

这个算式一共有多少种解法?

注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。

根据题意可知,此题可以用暴力破解法计算,在真实蓝桥杯比赛中,是不可能在一个填空题上花费太多时间,因此需要要抢占思考时间全部作为答题时间(当然有个学霸可以使用巧妙算法),另外暴力破解法也是蓝桥杯省赛中常用的方法,此题还考了一个知识点就是除法,一个整数除以一个整数还是整数,一个实数除以一个实数就是一个实数,此题一个陷阱就是答题人没有考虑这种情况(我做题也是没有考虑这种情况),因此在以后比赛或者编程过程中需要注意到,请看一下编程:

package com.lanqiao.seven.Test;

public class Demo03 {
public static void main(String[] args) {
int num=0;//为了计数
/*首先循环遍历1-9,只要所得出来的数不等于以上所有的数就继续循环,否则继续寻找*/
for (int A = 1; A <=9; A++) {
for(int B=1;B<=9;B++) {
if(A!=B)
{
for(int C=1;C<=9;C++)
{
if(C!=A&&C!=B)
{
for(int D=1;D<=9;D++)
{
if(D!=A&&D!=B&&D!=C)
{
for(int E=1;E<=9;E++)
{
if(E!=A&&E!=B&&E!=C&&E!=D)
{
for(int F=1;F<=9;F++)
{
if(F!=A&&F!=B&&F!=C&&F!=D&&F!=E)
{
for(int G=1;G<=9;G++)
{
if(G!=A&&G!=B&&G!=C&&G!=D&&G!=E&&G!=F)
{
for(int H=1;H<=9;H++)
{
if(H!=A&&H!=B&&H!=C&&H!=D&&H!=E&&H!=F&&H!=G)
{
for(int I=1;I<=9;I++)
{
if(I!=A&&I!=B&&I!=C&&I!=D&&I!=E&&I!=F&&I!=G&&I!=H)
{
/*必须考虑到实数,否则就会损失精度*/
if(A+(double)B/C+(double)((D*100)+(E*10)+F)/((G*100)+(H*10)+I)==10)
{
/*只要符合条件,就计数,否则不执行该语句*/
num++;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
/*输出结果*/
System.out.println(num);
}
}


结果是:29
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: