2017年 蓝桥杯模拟赛,猜算式(纯暴力)
题目:猜算式
你一定还记得小学学习过的乘法计算过程,比如:
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; } } } }
岂曰无衣?与子同袍。王于兴师,修我戈矛。与子同仇!
岂曰无衣?与子同泽。王于兴师,修我矛戟。与子偕作!
岂曰无衣?与子同裳。王于兴师,修我甲兵。与子偕行!