郑少秋现任老婆:一道简单的C语言程序设计题,请懂的人帮忙指正!!!

来源:百度文库 编辑:中科新闻网 时间:2024/04/30 00:27:07
EGAL*L=LGAE 字母代表十进制的数
是这样一道题,有人用字母代表十进制的数字,EGAL*L=LGAE 请高计一个程序求出L G A E

我想大家没理解楼主的意思,每个字母代表一个十进制数字,程序要求的是EGAL每个字母代表的值,我的做法是:
EGAL*L=LGAE
左边可以表示为:
E*L*(10+3E)+G*L*(10+2E)+A*L*(10+1E)+L*L*(10+0E)
右边可以表示为:
L*(10+3E)+G*(10+2E)+A*(10+1E)+E*(10+0E)
左边减去右边为:
(E*L-L)*(10+3E) + (G*L-G)*(10+2E) + (A*L-A)*(10+1E) + (L*L-E)*(10+0E) = 0

所以:
E*L-L = 0
G*L-G = 0
A*L-A = 0
L*L-E = 0

L = E = 1; G = A = [1-9];

这是数学解法,如果C编程解的话,最简单的方法是穷举法,把A,E,G,L是个代表的数字从0到9(有些不能为0) 循环,如果式子相等就是解之一。

赋值符号左面只能是一个变量,而不能是表达式.
只能写成:LGAE = EGAL * L

LGAE = EGAL * L

对啊,赋值运算符的左边只能是个变量,不能是表达式也不能是常量,比如:5=EGAL * L也同样错误~!~!~

#include<stdio.h>
void main()
{
int L ,G, A ,E ;
for(L=1;L<10;L++)
for(G=0;G<10;G++)
for(A=0;A<10;A++)
for(E=1;E<10;E++)
{
if((E*1000+G*100+A*10+L)*L==(L*1000+G*100+A*10+E))
printf("\nE--%d G--%d A--%d L--%d",E,G,A,L);
}
getchar();

}