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

题目:猜算式

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

273

x   15

------

1365

273

------

4095

请你观察如下的乘法算式

***

x   ***

--------

***

***

***

--------

*****

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

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

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

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

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

a230413bd48bf6bc3916cededa676d32.png

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

#include

#include

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;

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值