回 帖 发 新 帖 刷新版面

主题:编程题

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

 

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

 

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

 

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

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

 

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

 

回复列表 (共35个回复)

11 楼

sorry,偶能解滴出来,问题是你能不能解滴出来

12 楼

第三条
input n
s=0
do
r=n mod 2
n=n\2
s=s-r*10^i
n=n\10
i=i+1
loop until n=0
print s

13 楼

cls
dim a($10)
for i=1 to 10
 inut a$(i)
next i
do
 f=0
 for i=1 to 9
  if a$(i)>a$(i+1) then
  swap a$(i),a$(i+1)
  f=1 
  end if
 next i
loop until f=0
for i=1 to 10
 print a$(i);
next i
end
  

14 楼

cls
input n$
l=len(n$)
dim a$(l)
for i=1 to l
 h$=mid$(n$,i,1)
 a$(i)=h$
next i
for i=1 to l-1
 for j=i+1 to l
 if a$(i)>a$(j) then swap a$(i),a$(j)
 next j
next i
if a(1)=0 then swap a(1),a(2)
for i=1 to l
 print a$(i);
next i
print
for i=l to 1 step-1
 print a$(i);
next i
end 

15 楼

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$(i);
next i
end

16 楼

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$(i);
next i
end

17 楼

4.cls
input n$
l=len(n$)
dim a$(l)
for i=1 to l
 h$=mid$(n$,i,1)
 a$(i)=h$
next i
for i=1 to l
 h$=mid$(a$(i),i,1)
 if asc(h$)>64 and asc(h$)<91 then a$(i)=chr$(asc(asc(h$)+32))
 if asc(h$)>96 and asc(h$)<123 then a$(i)=chr$(asc(asc(h$)-32))
next i
for i=l to 1 step-1
 print a$(i);
next i
end

18 楼

.cls
input n$
l=len(n$)
dim a$(l)
for i=1 to l
 h$=mid$(n$,i,1)
 a$(i)=h$
next i
for i=1 to l
 h$=mid$(a$(i),i,1)
 if asc(h$)>64 and asc(h$)<91 then a$(i)=ucase$(h$)
 if asc(h$)>96 and asc(h$)<123 then a$(i)=lcase$(h$)
next i
for i=l to 1 step-1
 print a$(i);
next i
end

19 楼


王若愚!你是不会还是不懂?发的这是什么东西?

20 楼

第一题怎么还没人做
CLS
RANDOMIZE TIMER
DO
1 n = FIX((RND * 8999) + 1000)
 GOSUB SZ
 IF a$ = b$ OR a$ = c$ OR a$ = d$ THEN GOTO 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 GOTO 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

我来回复

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