2014 神奇算式

来源:互联网 发布:安卓手机淘宝网 编辑:程序博客网 时间:2024/06/08 18:59

神奇算式

    由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。

    比如: 

210 x 6 = 1260 
8 x 473 = 3784
27 x 81 = 2187 

    都符合要求。

    如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。

    请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。


题解:


 这算式一定是个位数x三位数,或两位数x两位数。

暴力枚举1到999;O(999^2),复杂度不是很大,然后check一下算式两边的数字是否一样。

答案:12


代码:

#include <iostream>#include<cstdio> using namespace std;int main(){    int count=0;    int i,j,d,sum;    for(i=1;i<999;i++){            int a[10]={0};            int b=i;            while(b!=0){                a[b%10]=1;                b=b/10;            }        for(j=1;j<999;j++){            int e[10]={0};            int c=j;            while(c!=0){                e[c%10]=1;                c=c/10;            }            sum=i*j;            d=sum;            if(d>=1000&&d<=9999){            while(d!=0){                if(a[d%10]==0||e[d%10]==0)                    break;                else                    d=d/10;             }         }          else             continue;         if(d==0)             count++;       }    }    cout<<count<<endl;    return 0;}


1 0
原创粉丝点击