您的位置:首页 > 其它

2017年 蓝桥杯模拟赛,猜算式(纯暴力)

2017-03-22 16:27 204 查看
题目:猜算式

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

   273

x   15

------

  1365

  273

------

  4095

  

请你观察如下的乘法算式

    ***

x   ***

--------

    ***

   ***

  ***

--------

  *****

  

星号代表某位数字,注意这些星号中,

0~9中的每个数字都恰好用了2次。

(如因字体而产生对齐问题,请参看图p1.jpg)

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

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



纯暴力解决 注意 题目要求 0-9的数字都包含两项, 

#include<stdio.h>
#include<string.h>
int ans[10];
void ddd(int x)
{
while(x)
{
ans[x%10]++;
x/=10;
}
}
int main()
{
int i,j,k;
int fflag;
for(i=100;i<1000;i++)
{
for(j=100;j<1000;j++)
{
fflag=0;
if(i*j>100000)
break;
memset(ans,0,sizeof(ans));
int a[2];
a[0]=i; a[1]=j;
ddd(a[0]);
ddd(a[1]);
ddd(i*j);
int b[3],temp1=i;
k=0;int temp2=j;
while(temp2)
{
b[k]=temp1*(temp2%10);
if(b[k]>1000||b[k]<100)
{
fflag=1;
break;
}

ddd(b[k++]);
temp2/=10;

}
if(fflag)
continue;

for(int l=0;l<=9;l++)
{
if(ans[l]!=2)
{
fflag=1;
break;
}
}
if(!fflag)
{
printf("%d\n",i*j);
break;
}

}

}

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