穷举法-- “让我怎能过大年”

2018-01-22 10:43:27来源:网络收集作者:程序诗人人点击

分享

[var1]有如下的加法算式。其中每个汉字代表一个数字。
(如果存在对齐问题,可参见【图1.png】)
                       年
                    大年
                 过大年
              能过大年
          怎能过大年
       我怎能过大年
+ 让我怎能过大年
------------------
   能能能能能能能
请填写“让我怎能过大年” 所代表的整数。
所有数字连在一起,中间不要空格。例如:"3125697"。当然,这个不是正确的答案。

注意:只填写一个整数,不要填写任何多余的内容。


代码:


#include
#include
int main()
{
long n, d, g, neng, zen, w, rang;
long a1, a2, a3, a4, a5, a6, a7;
//年 大 过 能 怎 我 让
for (n = 0; n <= 9;n++)
for (d = 0; d <= 9;d++)
for (g = 0; g <= 9;g++)
for (neng = 0; neng <= 9;neng++)
for (zen = 0; zen <= 9; zen++)
for (w = 0; w <= 9; w++)
for (rang = 0; rang <= 9; rang++)
{
a1 = n;
a2 = d * 10 + n;
a3 = g * 100 + d * 10 + n;
a4 = neng * 1000 + g * 100 + d * 10 + n;
a5 = zen * 10000 + neng * 1000 + g * 100 + d * 10 + n;
a6 = w * 100000 + zen * 10000 + neng * 1000 + g * 100 + d * 10 + n;
a7 = rang * 1000000 + w * 100000 + zen * 10000 + neng * 1000 + g * 100 + d * 10 + n;
/*long left = (long)(n +
d * 10 + n +
g * 100 + d * 10 + n +
neng * 1000 + g * 100 + d * 10 + n +
zen * 10000 + neng * 1000 + g * 100 + d * 10 + n +
w * 100000 + zen * 10000 + neng * 1000 + g * 100 + d * 10 + n +
r + 1000000 + w * 100000 + zen * 10000 + neng * 1000 + g * 100 + d * 10 + n);*/
long left = a1 + a2 + a3 + a4 + a5 + a6 + a7;
long right = (long)(neng * 1000000 + neng * 100000 + neng * 10000 + neng * 1000 + neng * 100 + neng * 10 + neng);
if (left==
right
)
{
if (n != d&&n != g&&n != neng&&n != zen&&n != w&&n != rang&&
d != g&&d != neng&&d != zen&&d != w&&d != rang&&
g != neng&&g != zen&&g != w&&g != rang&&
neng != zen&&neng != w&&neng != rang&&
zen != w&&zen != rang&&
w != rang
)
{
printf("让:%ld,我:%ld,怎:%ld,能:%ld,过:%ld,大:%ld,年:%ld/n", rang, w, zen, neng, g, d, n);
}
}
}
system("pause");
return 0;
}注意问题:学会调试,注意变量的存储范围(long,int)


运行结果:


让:1,我:5,怎:7,能:2,过:8,大:3,年:6
请按任意键继续. . .



相关文章

    无相关信息

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台