游客 Signup | Login
中文 | En

3718 - 三羊献瑞(2015蓝桥杯省赛第3题)

 

<span style="font-size:24pt;"><span>•</span></span><span style="font-family:宋体;color:black;font-size:24pt;">观察下面的加法算式:</span>

<span style="font-size:24pt;"><span>•</span></span><span style="font-family:Arial;color:black;font-size:24pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>祥 瑞 生 辉</span>

<span style="font-size:24pt;"><span>•</span></span><span style="font-family:Arial;color:black;font-size:24pt;"><span>&nbsp; </span></span><span style="font-family:Arial;color:black;font-size:24pt;">+<span>&nbsp;&nbsp;</span></span><span style="font-family:宋体;color:black;font-size:24pt;">三 羊 献 瑞</span>

<span style="font-size:24pt;"><span>•&nbsp;&nbsp; </span></span><span style="font-family:Arial;color:black;font-size:24pt;">-------------------</span>

<span style="font-size:24pt;"><span>•</span></span><span style="font-family:Arial;color:black;font-size:24pt;"><span>&nbsp;</span></span><span style="font-family:宋体;color:black;font-size:24pt;">三 羊 生 瑞 气</span>

<span style="font-size:24pt;"><span>•</span></span><span style="font-family:Arial;color:black;font-size:24pt;">(</span><span style="font-family:宋体;color:black;font-size:24pt;">如果有对齐问题,可以参看</span><span style="font-family:宋体;color:black;font-size:24pt;">【</span><span style="font-family:宋体;color:black;font-size:24pt;">图</span><span style="font-family:Arial;color:black;font-size:24pt;">1.jpg】)</span>

<img alt="" src="http://tk.hustoj.com:80/attached/image/20150425/20150425074542_99426.jpg" /><span style="font-family:Arial;color:black;font-size:24pt;"></span>

<span style="font-size:24pt;"><span>•</span></span><span style="font-family:宋体;color:black;font-size:24pt;">其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。</span>

<span style="font-family:Arial;color:black;font-size:24pt;"></span>

<span style="font-size:24pt;"><span>•</span></span><span style="font-family:宋体;color:black;font-size:24pt;">请你填写“三羊献瑞”所代表的</span><span style="font-family:Arial;color:black;font-size:24pt;">4</span><span style="font-family:宋体;color:black;font-size:24pt;">位数字(答案唯一),不要填写任何多余内容。</span>

Input

Output

Examples

Input


                

Output


                

Solution C

#include <stdio.h>
#define  N 10
#define  M 8
void perms(int p[],int start)
{
	int i,t;
	if(start==M)
	{
		if((p[0]>p[4])&&p[0]&&p[4]&&(p[0]*1000+p[1]*100+p[2]*10+p[3]+p[4]*1000+p[5]*100+p[6]*10+p[1]==p[4]*10000+p[5]*1000+p[2]*100+p[1]*10+p[7]))
        printf("%d%d%d%d",p[4],p[5],p[6],p[1]);
		return;
	}
	for(i=start;i<N;i++)
	{
		t=p[i];p[i]=p[start];p[start]=t;
		perms(p,start+1);
		t=p[i];p[i]=p[start];p[start]=t;
	}
}
int main()
{
	int p[]={0,1,2,3,4,5,6,7,8,9};		
	perms(p,0);
	return 0;
}

Solution C++

#include <stdio.h>
#define  N 10
#define  M 8
void perms(int p[],int start)
{
	int i,t;
	if(start==M)
	{
		if((p[0]>p[4])&&p[0]&&p[4]&&(p[0]*1000+p[1]*100+p[2]*10+p[3]+p[4]*1000+p[5]*100+p[6]*10+p[1]==p[4]*10000+p[5]*1000+p[2]*100+p[1]*10+p[7]))
        printf("%d%d%d%d\n",p[4],p[5],p[6],p[1]);
		return;
	}
	for(i=start;i<N;i++)
	{
		t=p[i];p[i]=p[start];p[start]=t;//交换
		perms(p,start+1);//递归
		t=p[i];p[i]=p[start];p[start]=t;//交换回来
	}
}
int main()
{
	int p[]={0,1,2,3,4,5,6,7,8,9};		
	perms(p,0);//从数组中索引号为0的元素开始进行排列
	return 0;
}


Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题