美文网首页C语言小程序
C语言小程序之凑算式

C语言小程序之凑算式

作者: 蟋蟀蝈蝈蛐蛐 | 来源:发表于2017-12-21 19:00 被阅读0次
    □□ x □□ = □□ x □□□
    两个两位数相乘等于一个两位数乘以一个三位数。
    限定是:该算式中1至9的每个数字出现且只出现一次!
    比如:
    46 x 79 = 23 x 158
    54 x 69 = 27 x 138
    请编程,输出所有可能的情况。
    
    #include <stdio.h>  
    #include <stdlib.h>  
    
    int cnm(char a[], int b) 
    {           
        while (b>0) 
        {
            if (a[b % 10] == '1')
                return 0;
            else 
            {
                a[b % 10] = '1';
                b /= 10;
            }
    
        }
        return 1;
    }
    int main()
    {
    
        int i, j, k, l;
        char a[10];        
    
        for (i = 12; i <= 98; i++) 
        {                 
            for (j = i + 1; j <= 98; j++) 
            {
                int rr = i*j;
                for (k = 12; k<i; k++) 
                {
                    if (rr / k>100 && rr%k == 0)                                 
                    {
                        for (l = 1; l<10; l++)
                            a[l] = '0';
                        a[0] = '1';
                        if (cnm(a, i) && cnm(a, j) && cnm(a, k) && cnm(a, rr / k)) 
                            printf("%d*%d=%d*%d\n", i, j, k, rr / k);
                    }
                }
            }
        }
        system("PAUSE");
        return 0;
    }
    
    

    相关文章

      网友评论

        本文标题:C语言小程序之凑算式

        本文链接:https://www.haomeiwen.com/subject/nptzwxtx.html