abcde*4=edcba(abcde为5个不相等的自然数) abcde=?(20分)

  • 主题发起人 主题发起人 tt8
  • 开始时间 开始时间
T

tt8

Unregistered / Unconfirmed
GUEST, unregistred user!
呵呵一道小学奥赛题,看谁最快算出,并给出过程。
我已经知道答案。
 
我小学毕业了 21978
procedure TForm1.Button2Click(Sender: TObject);
var
a,b,c,d,e: integer;
begin
for a :=0 to 9 do
for b :=0 to 9 do
for c:=0 to 9 do
for d :=0 to 9 do
for e :=0 to 9do
if ((10000*a+1000*b+100*c+10*d+e)*4=10000*e+1000*d+100*c+10*b+a) and (a<>b) and (a<>c) and (a<>d) and (a<>e) and (b<>c) and (b<>d) and (b<>e) and (c<>d) and (c<>e) and (d<>e) then
showmessage(inttostr(a)+' '+inttostr(b)+' '+inttostr(c)+' '+inttostr(d)+' '+inttostr(e));
showmessage('finish')
end;
 
这个不算,不是穷举法
给出逻辑过程
有你一点分:)
 
穷举法也是算法,而且我认为,用计算机做此题,穷举还是个不错的算法。
 
简单 a 是突破口
1):
25000*4 =100000是六位数,而结果是5为数,说明a只能是1和2
,1是不可能的,没有什么数*4 =..1,so a=2.
2):
a=2 ;在看最后一位数,只有e*4 =..2,e*4 =..2,那么e只能是3,8
而3是不可能的10000*4=40000>30000,so e=8
3):
b*4 没有进位,到最高位,说明b应该在1,2之间,a=2,so b=1
4):d*4+3(进位)=..1 ,那么d=2,7 a=2 so d=7
5);
c*4+3(进位)=3c 那么c=9
答案:21978

 
首先能判断a<3,然后排除0 因为a和e不能相等,排除1,因为没有a*4=%1,确定a=2,也就确定e=8
然后,可以决定b<3,因为b>=3,则要进位,可以排除0,因为4*8为32要b=0则要d*4=%7,没有。可以排除2,重复,所以确定b=1,
然后 决定d=7,e=9
可以了吗
 
我问一下,自然数是从0-9吗?
 
首先第一位不可能>2;而且肯定為偶數,所以a=2;
E*4的個位為2 。只有3,8。3當然又不可能。所以e=8;
4*8=32.所以b肯定為奇數。
B不可能向上進位。那只有1了。
(D*4+3)模10與1同余。D只有7了。
最後C=9。
 
abcde*4=edcba(abcde为5个不相等的自然数)
----------------------
答案:21978
理由如下:
5位数乘以4没有产生6位数,说明a=1或2,
由于e*4的个位数为a,所以a不等于1,故a=2;
由于e*4的个位数为a,所以,e等于3或8,因a*4=8,所以e=8;
由于b*4没有产生向前的进位,所以,b=1或2;
由于d*4+3(3是e*4产生的向上进位)的个位一定是奇数,所以b=1;
所以d*4的个位应该是8,因此d=2或7;
由于b*4加上c*4的进位为d,而b*4=4,所以 d=7;
因此可知,c*4产生的进位为3,所以,c=8或9;
由于d*4+3产生的进位为3,所以,c满足c*4+3的个位是c,故c=9;
-----------------------
 
后退
顶部