这个问题要如何写算法?(200分)

  • 主题发起人 主题发起人 jdti
  • 开始时间 开始时间
J

jdti

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个16进制的数,比如"135",我如何才能把他分解成为四个16进制数为一组的数。而这
四个16进制数每两个相加的和和另两个的和相加的值都是135,比如象下面的这组数:
13 57 A4 27 其中:
13+57=6A / 13+A4=B7 / 13+27=3A /
6A+CB=135 B7+7E=135 3A+FB=135
A4+27=CB / 57+27=7E / 57+A4=FB /

我的意思也就是以一个16进制的数为种子,求出所有符合上面计算条件的每四个16进制数
为一组的数。
要求:用一个edit来接受输入的一个16进制数,然后在memo中把所有符合条件的四数组合都
列出来。
急。。。。分数不够可再加。
也不知道我表达清楚了我的意思没有,大家如果看不懂的话,请提出来,我在解释解释。
 
笨死啦!不管怎么分,四个数字加起来还不是那么多?
a+b+c+d=135 =>(a+b)+(c+d)=135=>(a+c)+(b+d)=135=>(a+d)+(b+c)=135
 
当然笨了,不笨不就会了吗,还用问大家 ,呵呵。
我是要用135反推出来所有符合上面的要求的数。
我就是憋不过来那个劲。
 
for i:=1 to 135 do
for j:=1 to 135-i do
for k:=1 to 135-j do
if 135-i-j-K>0 then
Memo1.Lines.Add(format('%d %d %d %d',[i,j,k,135-i-j-k]));

给分![:)]
 
呵呵,至少要换成16进制数吧,而且是不是要考虑去掉数字相同,只是次序不同的组
 
后退
顶部