/*
观察下面的加法算式:
祥瑞生辉
+ 三羊献瑞
----------------
三羊生瑞气
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你编程输出“三羊献瑞”所代表的4位数字(答案唯一)。
*/
#if 1
#include <stdio.h>
void xuanze(int [],int,int);
int byy(int [],int);
int q_qs(int);
int q_shu( int [], int );
int main(void)
{
int sz[8];
xuanze(sz,8,0);
return 0;
}
int q_qs(int k)
{
if( k == 0 || k == 4 )
{
return 1;
}
return 0;
}
int q_shu( int z[], int n)
{
int he = 0 , i ;
for( i = 0 ; i < n ; i ++ )
{
he *= 10 ;
he += z[i];
}
return he ;
}
int byy(int z[],int k)
{
int i ;
for( i = 0 ; i < k ; i ++ )
{
if( z[i] == z[k] )
{
return 0;
}
}
return 1;
}
void xuanze(int z[],int n,int k)
{
if( k == n )
{
int shu1[4] = { z[0] , z[1] , z[2] , z[3] };
int shu2[4] = { z[4] , z[5] , z[6] , z[1] };
int shu3[5] = { z[4] , z[5] , z[2] , z[1] , z[7] };
if( (q_shu(shu1,4) + q_shu(shu2,4)) == q_shu(shu3,5) )
{
printf("%d\n", q_shu(shu2,4) ) ;
}
//return;
}
for( z[k] = q_qs(k) ; z[k] < 10 ; z[k] ++ )
{
if( byy(z,k) )
{
xuanze(z,n,k+1);
}
}
}
#endif
观察下面的加法算式:
祥瑞生辉
+ 三羊献瑞
----------------
三羊生瑞气
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你编程输出“三羊献瑞”所代表的4位数字(答案唯一)。
*/
#if 1
#include <stdio.h>
void xuanze(int [],int,int);
int byy(int [],int);
int q_qs(int);
int q_shu( int [], int );
int main(void)
{
int sz[8];
xuanze(sz,8,0);
return 0;
}
int q_qs(int k)
{
if( k == 0 || k == 4 )
{
return 1;
}
return 0;
}
int q_shu( int z[], int n)
{
int he = 0 , i ;
for( i = 0 ; i < n ; i ++ )
{
he *= 10 ;
he += z[i];
}
return he ;
}
int byy(int z[],int k)
{
int i ;
for( i = 0 ; i < k ; i ++ )
{
if( z[i] == z[k] )
{
return 0;
}
}
return 1;
}
void xuanze(int z[],int n,int k)
{
if( k == n )
{
int shu1[4] = { z[0] , z[1] , z[2] , z[3] };
int shu2[4] = { z[4] , z[5] , z[6] , z[1] };
int shu3[5] = { z[4] , z[5] , z[2] , z[1] , z[7] };
if( (q_shu(shu1,4) + q_shu(shu2,4)) == q_shu(shu3,5) )
{
printf("%d\n", q_shu(shu2,4) ) ;
}
//return;
}
for( z[k] = q_qs(k) ; z[k] < 10 ; z[k] ++ )
{
if( byy(z,k) )
{
xuanze(z,n,k+1);
}
}
}
#endif