有一字节一维数组 A, 数据长度为 255, 数组的后一数据值是前一数据值加 09H 或 0AH.
数组的第一个数据值为: C9H. 
注: 数组的各数据值只取一字节,即取 低字节 (BYTE)现给出数组的偏移量 n ( 0<= n <= 255 ) ,求出在其地址上对应的值。如: A = { C9H, D3H, DDH, E6H, F0H, FAH, 04H ...... }
    当 n=3,  解的结果就是  E6H
因为数组是已知的,你可以自己整理出一些数据表方便与求解,但算法要在时间与空间上最简。

解决方案 »

  1.   

    那我再描一次:有一个一维数组 A, 数组的总单元项长度为 255, 数组里的后一单元项数据值是数组里的前一单元项数据值加 09H 或 0AH.
    数组的第一个单元项数据值为: C9H. 
    注: 数组的各单元项数据值只取一字节,即取 低字节 (BYTE)现给出数组单元项的偏移量 n ( 0<= n < 255 ) ,求出在其地址上对应的单元项数据值。如: A = { C9H, D3H, DDH, E6H, F0H, FAH, 04H ...... }
        当 n=3,  解的结果就是  E6H
    因为数组中各单元项是已知的,你可以自己整理出一些数据表方便于求解,但算法要在时间与空间上最简。
      

  2.   

    to: leechiyang(日出东方)      你真是高呀。
      

  3.   

    思路:因为加相同的数字,09H或0AH。
    每隔16组就是一个固定循环。
    A[n]=C9+(n mod 16)*09H不好意思,现在用VB.net做程序,C语法忘得差不多了不知道我的解符合楼主思路不?看里面有算法的,我进来看看
      

  4.   

    我算了一下,好象应该是E7。好的算法算都是用时间换空间或空间换时间的。这个题的运算量其实不大,A[n] = (A[n-1]+ 09H)%FFH;就行了,也可以把所有值全不算出来放到数组里,再查表
      

  5.   


    1、
    我上面有个例子数组:
    如: A = { C9H, D3H, DDH, E6H, F0H, FAH, 04H ...... }
        当 n=3,  解的结果就是  E6H这其中: A[1] - A[0] = D3H - C9H = 0AH
            A[2] - A[1] = DDH - D3H = 0AH
            A[3] - A[2] = E6H - DDH = 09H
            .....加 09H 或 0AH ,意思是有一些后一个单无数据是前一个单元数据加 09H ; 另有一些后一个单无数据是前一个单元数据加 0AH。数据的所有单无数据是已知的,只是没有这么有规律。有些加 09H, 有些加 0AH.2、
    时间与空间上最简
    如: 数组 A[255] 就占用了 255 字节的间空,但如果把 A 数组重新整理后,可能就不用 255 字节的空间了,同时运行时间上可能要多点。
    所以要在时间与空间两都之间打个平衡点。
      

  6.   

    to:  leechiyang(日出东方)1、
    正因为数组是已知的,从使用空间的角度讲,就可以对这个数组进行压缩。
    如果不对数组进行压缩,在使用空间上正好是一个最大值(压缩后会占用
    一定的运行时间)。2、
    并且只这个数组而言,使用A[n]的行式寻址,它所占用的寄存器或RAM单元
    并不占优势。但寄存器或RAM本身就是一个宝贵的资源。
    好了,这个贴子结了。