C趣味程序百例(20).减式还原
63.减法归约
写一个程序,求解下面公式中每个字母所代表的数字。不同的字母代表不同的数字。
PEAR
-ARA
-
PEA
*类似算法设计的问题
从计算机算法的角度来看比较简单,用最常见的穷举法就可以解决。程序中循环枚举每个字母所代表的可能数字,然后将字母所代表的数字转换成相应的整数,代入后验证公式是否有效即可解决问题。
*程序和程序注释
# include
void main()
{
int p,e,a,r;
for(p = 1;p为(e = 0;e if(p!=e) /*p不等于e */
for(a = 1;a如果(a!=p&&a!= e)
for(r = 0;r if(r!=p&&r!=e&&r!= a & & p * 1000+e * 100+a * 10+r-(a * 100+r * 10+a)
= = p * 100+e * 10+a)
{
printf(" PEAR % d % d % d % d \ n ",p,e,a,r);
printf(" -ARA - %d%d%d\n ",a,r,a);
printf(".........................\ n ");
printf(" PEA %d%d%d\n ",p,e,a);
}
}
*运行结果
pear 1098
-ara-989
-[/br/
0条评论