回 帖 发 新 帖 刷新版面

主题:我儿子的一道题不会做!请高手指点一下!

设有一个包含N个元素的一维数组A,存放的元素为0~N-1(1< N < =10)之间的整数,且
A[i]≠A[j](i≠j),例如当 N=6时,有A=(4,3,0,5,1,2),对A数组进行编码,编码规则如下:
A[0]的编码为0,
A[i]的编码为:在A[0],A[1],A[2],……,A[i-1]中比A[i]的值小的数的个数,(I=1,2,3,……,N-1)
所以上面数组A的编码为B=(0,0,0,3,1,2)。现在要解决的问题是,当给出元素个数N ( N〈=9 〉和数组A的编码B后,根据B的值求出数组A中的原数据。
  例如: 输入6
            0  0  0  3  1  2
        输出
            4  3  0  5  1  2

回复列表 (共15个回复)

沙发

请帮忙指导一下!写出有解题思路的程序!

板凳

楼上确认题目没有错吗?

3 楼

楼上的面孔很生啊
是跑来捣乱的吗?

input"n=",n
dim a(n),b(n)
for i=1 to n
  print"b(";i;
  input")=",b(i)
next
for i=1 to n
  a(i)=-1
next
k=1
do until k<1
  'print a(1);a(2);a(3);a(4);a(5);a(6),k;j,input$(1)
  if a(k)<b(k)then a(k)=b(k)else a(k)=a(k)+1
  if a(k)>=n then
   a(k)=-1
   k=k-1
  else
   j=0
   for i=1 to k-1
    if a(i)<a(k)then j=j+1
    if a(i)[color=FF00FF]=[/color]a(k)then j=-N
   next
   if j=b(k)then
    k=k+1
   elseif j>b(k)then
    a(k)=-1
    k=k-1
   end if
  end if
  if k>n then
   for i=1 to n
    print a(i);
   next
   print
   k=k-1
  end if
loop

4 楼

if a(i)<a(k)then j=j+1
    if a(i)<a(k)then j=-N
这两句是什么作用!
整个程序IF语句用的太复杂,都有些糊,能解释一下吧!

5 楼

笔误,
是等号,
不允许两数相等.

6 楼

[quote]楼上的面孔很生啊
是跑来捣乱的吗?

[/quote]

很久没来,看来大家都认不到了,以后争取来勤点,至少也混个面熟。

7 楼

欠我钱就算化了灰都认得你
不过这里流水飞鸟比较多,
认得你的没几个。

8 楼

欠我钱的多了,我找谁要去?你还不错,都挣了一万多了.

9 楼

那是因为我已经无路可逃了,
只好死赖这里混口饭吃。

10 楼


我P啊  大名鼎鼎的MOZ,,,,   还要混

我来回复

您尚未登录,请登录后再回复。点此登录或注册