/*
有如下的加法算式。其中每个汉字代表一个数字。
(如果存在对齐问题,可参见【图1.png】)
有如下的加法算式。其中每个汉字代表一个数字。
(如果存在对齐问题,可参见【图1.png】)
年
大年
过大年
能过大年
怎能过大年
我怎能过大年
+ 让我怎能过大年
------------------
能能能能能能能
大年
过大年
能过大年
怎能过大年
我怎能过大年
+ 让我怎能过大年
------------------
能能能能能能能
请填写“让我怎能过大年” 所代表的整数。
所有数字连在一起,中间不要空格。例如:"3125697"。当然,这个不是正确的答案。
所有数字连在一起,中间不要空格。例如:"3125697"。当然,这个不是正确的答案。
注意:只填写一个整数,不要填写任何多余的内容。
答案:1572836
*/
答案:1572836
*/
#include<stdio.h>
int visit[10]={0};
int map[8]={0};
int ans=0;
long a1,a2,a3,a4,a6,a5,a7;
long sum=0;
void check()
{
a1=map[1];//第一横排:年
a2=map[2]*10+a1;//第二横排:大年
a3=map[3]*100+a2;
a4=map[4]*1000+a3;
a5=map[5]*10000+a4;
a6=map[6]*100000+a5;
a7=map[7]*1000000+a6;
long a=map[4]*1000000+map[4]*100000+map[4]*10000+map[4]*1000+map[4]*100+map[4]*10+map[4];
sum=(a1+a2+a3+a4+a5+a6+a7);
if(a==sum)// a为:能能能能能能能
printf("%ld\n",a7);
}
void dfs(int n)
{
if(n==8)
{
check();
return;
}
for(int i=1;i<10;i++)
{
if(visit[i]==0)
{
visit[i]=1;
map[n]=i;
dfs(n+1);
visit[i]=0;
}
}
}
int main()
{
dfs(1);
return 0;
}