2017蓝桥杯模拟赛 Problem B: 猜算式(11分)

Problem B: 猜算式(11分)

Description


题目:

你一定还记得小学学习过的乘法计算过程,比如:

   273
x   15
------
  1365
  273
------
  4095
  
请你观察如下的乘法算式

    ***
x   ***
--------
    ***
   ***
  ***
--------
  *****
  
星号代表某位数字,注意这些星号中,
0~9中的每个数字都恰好用了2次。
(如因字体而产生对齐问题,请参看图p1.jpg)

请输出这个式子最终计算的结果,就是那个5位数是多少?

注意:只需要输出一个整数,不要输出任何多余的内容。比如说明文字。

(注:蓝桥杯比赛时,此题为填空题,直接填写答案即可)

Input

Output

Sample Input

Sample Output


#include<bits/stdc++.h>
using namespace std;
int abc(int a,int *f)
{
                while(a)
                {
                                if(f[a%10]==2)return 0;
                                f[a%10]++;
                                a=a/10;
                }
                return 1;
}
int main()
{

                for(int i=100;i<999;i++)
                {
                                for(int j=100;j<999;j++)
                                {
                                                int f[10]={0};
                                                int a=i*(j%10);
                                                int b=i*(j/10%10);
                                                int c=i*(j/100);
                                                if(a>=1000||b>=1000||c>=1000||a<100||b<100||c<100)continue;
                                                int sum=i*j;
                                                if(sum>=100000||sum<10000)continue;
                                                if(abc(a,f)&&abc(b,f)&&abc(c,f)&&abc(i,f)&&abc(j,f)&&abc(sum,f))
                                                {
                                                                printf("%d\n",sum);
                                                }
                                }
                }
                return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值