Shawn_Li327
Double327
采纳率0%
2016-05-03 14:42 阅读 2.6k

C语言 神奇算式。求大神解答!!!

标题:神奇算式

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

比如: 

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-05-03 15:29
  • u012155923 咖啡不加盐 2016-05-03 22:23

    是要找出所有的神奇算式?可以将两个乘数的元素存入一个到一个字符串里面,然后得出它们的乘积,再去看乘积是否和之前那个字符串里面的元素完全一致就OK了

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-05-03 22:31

    http://codepad.org/FBzE5RKb

    6 * 201 = 1206
    6 * 210 = 1260
    21 * 60 = 1260
    15 * 93 = 1395
    35 * 41 = 1435
    3 * 501 = 1503
    3 * 510 = 1530
    30 * 51 = 1530
    21 * 87 = 1827
    27 * 81 = 2187
    9 * 351 = 3159
    8 * 473 = 3784

    点赞 评论 复制链接分享
  • havedream_one havedream_one 2016-05-04 00:39
     #include <iostream>
    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;
    }
    
    点赞 评论 复制链接分享
  • ZGZ1002 ZGZ1002 2016-05-04 07:57

    #include
    using namespace std;
    int main()
    {
    int count=0;
    int i,j,d,sum;
    for(i=1;i int a[10]={0};
    int b=i;
    while(b!=0){
    a[b%10]=1;
    b=b/10;
    }
    for(j=1;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;
    }

    点赞 评论 复制链接分享

相关推荐