回 帖 发 新 帖 刷新版面

主题:编程题

1、数学黑洞6174
    已知:一个任意的四位正整数。将数字重新组合成一个最大的数和最小的数相减,重复这个过程,最多七步,必得6174。即:7641-1467=6174。将永远出不来。
    求证:所有四位数数字(全相同的除外),均能得到6174。输出掉进黑洞的步数。

 

2、输入10个学生的姓名,编一程序将它们按字母的顺序排列。

 

3、输入一个十进制数,将其转换成二进制数。

 

4、将字符串中的大写字母转换成小写字母,并反相输出。

     如输入'abcABC234!$',输出为'$!432cbacba'

 

5、从屏幕上输入一个多位自然数,然后将各位重新排列成一个仍由原来的那些数字组成的位数不变的最大数和最小数。

 

回复列表 (共35个回复)

21 楼

2
cls
dim a$(10)
for i = 1 to 10
 input a$(i)
next i 
for i = 1 to 9
 for j = i to 10
   if a$(i)< a$(j) then swap a$(i),a$(j)
next j,i
for i = 1 to 20
print a$(i)
next i

22 楼

正确答案公布:
1.
Cls
Randomize Timer
Do
1 n = Fix((Rnd * 8999) + 1000)
  Gosub SZ
  If a$ = b$ Or a$ = c$ Or a$ = d$ Then 1
Loop Until n > 999 And n < 10000
Gosub DX
Print n
Do
  p = p + 1
  n = max - min
  Gosub SZ
  Print max; "-"; min; "="; n
  max = 0
  Gosub DX
  If n = 6174 Then Print p: End
Loop Until p = 99
Print "No!"
End
DX:
  a$(1) = a$
  a$(2) = b$
  a$(3) = c$
  a$(4) = d$
  min = VAL(a$ + b$ + c$ + d$)
  For i = 1 TO 4
    For j = 1 TO 4
      For k = 1 TO 4
        For l = 1 TO 4
          If i <> j And i <> k And i <> l And j <> k And j <> l And l <> k Then
            If a$(i) = "0" Then 2
            z = Val(a$(i) + a$(j) + a$(k) + a$(l))
            If z > max Then max = z
            If z < min Then min = z
          End If
2       Next l
      Next k
    Next j
  Next i
Return
SZ:
n$ = Ltrim$(Str$(n))
a$ = Mid$(n$, 1, 1): a = Val(a$)
b$ = Mid$(n$, 2, 1): b = Val(b$)
c$ = Mid$(n$, 3, 1): c = Val(c$)
d$ = Mid$(n$, 4, 1): d = Val(d$)
Return

23 楼

2.
Cls
Dim a$(10)
For i = 1 To 10
  Input a$(i)
Next i
For i = 1 To 9
  For j = i + 1 To 10
    If a$(i) > a$(j) Then Swap a$(i),a$(j)
  Next j
Next i
For i = 1 To 10
  Print a$(10);Spc(3);
Next i
End

24 楼

3.
Cls
Input n
Dim a(10000)
Do
  i = i + 1
  a(i) = n Mod 2
  n = n \ 2
Loop Until n = 0
For j = i To 1 Step -1
  Print Ltrim$(Str$(a(j)));
Next j
End

25 楼

4.
Cls
Input a$
a$ = Lcase$(a$)
For i = Len(a$) To 1 Step -1
  Print Mid$(a$,i,1);
Next i
End

26 楼

5.
Cls
Input n$
ln = Len(n$)
Dim a$(ln), b$(ln)
For i = 1 TO ln
  a$(i) = Mid$(n$, i, 1)
  b$(i) = Mid$(n$, ln + 1 - i, 1)
Next i
For i = 1 TO ln - 1
  For j = i + 1 TO ln
    If a$(i) < a$(j) Then Swap a$(i), a$(j)
    If b$(i) > b$(j) Then Swap b$(i), b$(j)
Next j, i
For i = 1 TO ln
  Print a$(i);
Next i
Print
For i = 1 TO ln
  If b$(i) = "0" Then 1
  p = i
  Exit For
1 Next i
Print b$(p); String$(p - 1, "0");
For i = p + 1 TO ln
  Print b$(i);
Next i
End
行了,反正都没人知道,我就把答案公布了

27 楼

第五题要判断首位不能为0,所以加了很多语句!

28 楼

这是你老师出的题目吧!

29 楼

你的老师的blog上有
1、数学黑洞6174
    已知:一个任意的四位正整数。将数字重新组合成一个最大的数和最小的数相减,重复这个过程,最多七步,必得6174。即:7641-1467=6174。将永远出不来。
    求证:所有四位数数字(全相同的除外),均能得到6174。输出掉进黑洞的步数。

 

2、输入10个学生的姓名,编一程序将它们按字母的顺序排列。

 

3、输入一个十进制数,将其转换成二进制数。

 

4、将字符串中的大写字母转换成小写字母,并反相输出。

     如输入'abcABC234!$',输出为'$!432cbacba'

 

5、从屏幕上输入一个多位自然数,然后将各位重新排列成一个仍由原来的那些数字组成的位数不变的最大数和最小数。

30 楼

是我老师出的,不过她没给正确答案

我来回复

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