蓝桥杯---2017模拟赛-高职高专组题目:猜算式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯---2017模拟赛-高职高专组题目:猜算式相关的知识,希望对你有一定的参考价值。

题目:

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


   273

x   15

------

  1365

  273

------

  4095

  

请你观察如下的乘法算式


    ***

x   ***

--------

    ***

   ***

  ***

--------

  *****

  

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

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

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


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


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


------------------------------------------------------------


剧透中......


笨笨有话说:

    把所有可能的3位数乘以3位数搜索一遍的话....

关键是,这20个数字中0~9都用了两次,需要统计每个数字出现的次数...

看起来有点麻烦啊!


歪歪有话说:

    我敢打赌!如果有某个数字出现次数不足2次,就一定有某个数字出现多于2次!

这样,在累积出现次数的时候,只要看到某数已经出现3次了,就果断否定之!

代码如下:

#include<stdio.h>

int s,b,c,d,e,f,g,h,k,m;

void choose(int a)

{

switch(a)

{

case 0:s++;break;

case 1:b++;break;

case 2:c++;break;

case 3:d++;break;

case 4:e++;break;

case 5:f++;break;

case 6:g++;break;

case 7:h++;break;

case 8:k++;break;

case 9:m++;break;

}

}

main()

{

for(int i=100;i<=999;i++)

{

for(int j=100;j<=999;j++){

// int i=450;

// int j=250;

choose((i%100)%10);

choose((i%100)/10);

choose(i/100);

choose((j%100)%10);

choose((j%100)/10);

choose(j/100);

int r=i*j;

choose(((((r)%10000)%1000)%100)%10);

choose(((((r)%10000)%1000)%100)/10);

choose((((r)%10000)%1000)/100);

choose((((r)%10000)/1000));

choose(((r)/10000));

int x=((j%100)%10)*i;

choose((x%100)%10);

choose((x%100)/10);

choose(x/100);

int y=((j%100)/10)*i;

choose((y%100)%10);

choose((y%100)/10);

choose(y/100);

int z=(j/100)*i;

choose((z%100)%10);

choose((z%100)/10);

choose(z/100);

if(s==2&&b==2&&c==2&&d==2&&e==2&&f==2&&g==2&&h==2&&k==2&&m==2){

printf("%d*%d=%d",i,j,i*j);

}

s=b=c=d=e=f=g=h=k=m=0;

}

}

return 0;

}


本文出自 “11613741” 博客,请务必保留此出处http://11623741.blog.51cto.com/11613741/1913308

以上是关于蓝桥杯---2017模拟赛-高职高专组题目:猜算式的主要内容,如果未能解决你的问题,请参考以下文章

蓝桥杯模拟赛 猜算式

蓝桥杯-题目:猜算式

算法笔记_127:蓝桥杯2017模拟赛-本科组习题解答(Java)

蓝桥杯题目难吗

(高职专科组)第十一届蓝桥杯省模拟赛答案给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母。

(高职专科组)第十一届蓝桥杯省模拟赛答案给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母。