C语言编程入门必做题-给定等式,猜字母代表的数字

  /*
 请保留以下信息
 作者:shaoshaoh
 网址:http://blog.csdn.net/shaoshaoh 
  1.  给定等式  A B C D E     其中每个字母代表一个数字,且不同数字对应不
                    D F G     同字母。编程求出这些数字并且打出这个数字的
             +      D F G     算术计算竖式。

             ───────

                X Y Z D E
*/
# include "stdio.h"


int num[
13 ];  /* 分别代表A,B,C,D,E,D,F,G,X,Y,Z,D,E */
long i
, j;
long result;
void seperate(int
*  nums ,  long abcde ,  long dfg ,  long xyzde);
int check(void);
int main(void){
    
for  (i = 0 ;i < 10 ;i ++ ) num[i] = 0 ;
    
for  (i = 10234 ; i < 98561 ; i ++ )
        
for (j = 102 ; j < 987 ; j ++ )
        {
            seperate(num
, i , j , i + j * 2 );
            
if  ( check() ) goto out;
        }
    out
:
    
printf ( " The ABCDE is:%d%d%d%d%d " , num[ 0 ] , num[ 1 ] , num[ 2 ] , num[ 3 ] , num[ 4 ]);
    
printf ( " The DFG is:%d%d%d " , num[ 5 ] , num[ 6 ] , num[ 7 ]);
    
printf ( " The XYZDE is:%d%d%d%d%d " , num[ 8 ] , num[ 9 ] , num[ 10 ] , num[ 11 ] , num[ 12 ]);
}

void seperate(int
*  nums ,  long abcde ,  long dfg ,  long xyzde)
{
    nums[
4 ] = abcde  %   10 ;
    nums[
3 ] = (abcde  -  nums[ 4 ])  %   100   /   10 ;
    nums[
2 ] = (abcde  -  abcde  % 100 ) %   1000   /   100 ;
    nums[
1 ] = (abcde  -  abcde  %   1000 ) %   10000 /   1000 ;
    nums[
0 ] = (abcde  -  abcde  %   10000 /   10000 ;
    nums[
7 ] = dfg  %   10 ;
    nums[
6 ] = (dfg  -  nums[ 7 ]) % 100   / 10 ;
    nums[
5 ] = (dfg - dfg % 100 ) / 100 ;
    nums[
12 ] = xyzde  %   10 ;
    nums[
11 ] = (xyzde  -  nums[ 4 ])  %   100   /   10 ;
    nums[
10 ] = (xyzde  -  xyzde  % 100 ) %   1000   /   100 ;
    nums[
9 ] = (xyzde  -  xyzde  %   1000 ) %   10000 /   1000 ;
    nums[
8 ] = (xyzde  -  xyzde  %   10000 /   10000 ;
}
int check(void)
{
    int i
, j , temp[ 10 ];
    
if  (num[ 0 ==  num[ 8 ])  return   0 ;
    
if  (num[ 1 ==  num[ 9 ])  return   0 ;
    
if  (num[ 2 ==  num[ 10 ])  return   0 ;
    
if  (num[ 3 !=  num[ 11 ||  num[ 3 !=  num[ 5 ])  return   0 ;
    
if  (num[ 4 !=  num[ 12 ])  return   0 ;
    temp[
0 ] = num[ 0 ];
    temp[
1 ] = num[ 1 ];
    temp[
2 ] = num[ 2 ];
    temp[
3 ] = num[ 3 ];
    temp[
4 ] = num[ 4 ];
    temp[
5 ] = num[ 6 ];
    temp[
6 ] = num[ 7 ];
    temp[
7 ] = num[ 8 ];
    temp[
8 ] = num[ 9 ];
    temp[
9 ] = num[ 10 ];
    
for  (i  = 0 ; i < 10 ; i ++ )
        
for (j = i + 1 ; j < 10 ; j ++ )
            
if  (temp[i]  ==  temp[j])  return   0 ;
    
return   1 ;
}
 

你可能感兴趣的:(C++,编程,语言,c)