2015年第六届蓝桥杯C/C++程序设计本科B组省赛-三羊献瑞

三羊献瑞(结果填空)

 观察下面的加法算式:
       祥 瑞生 辉
 +    三羊 献 瑞
-------------------
 三 羊 生 瑞 气
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
思路:循环遍历每一个汉字代表的数字。
即可转换为
        a b c d
+     e f  g b
-------------
   e  f  c  b h


答案为:1085



#include <stdio.h>
#include <stdlib.h>

int main()
{

    int a,b,c,d,e,f,g,h;
    int num1,num2,num3;
    //int sum=0;
    for(a=1; a<10; a++)
    {
        for(b=0; b<10; b++)
        {
            for(c=0; c<10; c++)
            {
                for(d=0; d<10; d++)
                {
                    for(e=1; e<10; e++)
                    {
                        for(f=0; f<10; f++)
                        {
                            for(g=0; g<10; g++)
                            {
                                if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g    &&b!=c&&b!=d&&b!=e&&b!=f&&b!=g   &&c!=d&&c!=e&&c!=f&&c!=g  &&d!=e&&d!=f&&d!=g  &&e!=f&&e!=g&&f!=g)
                                {//判断a b c d e f g各不相等时要写仔细,不要有遗漏
                                    num1=a*1000+b*100+c*10+d;
                                    num2=e*1000+f*100+g*10+b;
                                    num3=num1+num2;
                                    h=num3%10;
                                    if(h!=a&&h!=b&&h!=c&&h!=d&&h!=e&&h!=f&&h!=g)//h是通过计算得来的,h也不能与acdefg中的任何一个相同
                                    {

                                        if(num3/10000==e   &&(num3/1000)%10==f   &&(num3/100)%10==c  &&(num3/10)%10==b  &&num3%10==h)
                                        {

                                            //sum++;
                                           // printf("%d%d%d%d\n",a,b,c,d);
                                            printf("%d%d%d%d\n",e,f,g,b);
                                            //printf("%d%d%d%d%d\n",e,f,c,b,h);
                                            //printf("****************\n");
                                        }
                                    }

                                }

                            }
                        }
                    }
                }
            }
        }
    }
    //printf("%d",sum);
    return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值