回 帖 发 新 帖 刷新版面

主题:急!编程填空题

找出1到100中所有满足条件的整数K,K应满足的条件是:K的平方值由左右称的数字组成(一位数亦认为是左右对称)如K=11,则K的平方等于121是左右对称
DIM a(1 to 4)
for k%=1 to 99
m%=k%*k%
i=0
while m%
i=i+1
a(i)=m% mod 10
m%=[u]             [/u]
wend
j=1
while [u]                  [/u]amd j<i
j=j+1
i=i-1
wend
if [u]                                    [/u] then print k%.
next k%
print
end
帮忙补充完整,并加以解释吧,谢谢了

回复列表 (共5个回复)

沙发

第一个空格: m%=m%\10
             这个循环的目的是把 m% 的各位数字放到数组 a%(1 to 4) 中去,
             以便下面程序的利用。
第二个空格: while a%(i)=a%(j) and j<i
             这个循环的目的是为了检查数值是否前后对称。
第三个空格: if j>=i then print k%
             这是数值前后对称的标志。

板凳

for k%=1 to 99
    a$=rtrim$(ltrim$(str$(k%*k%)))
    l%=len(a$)
       for i%=1 to l%\2
           if mid$(a$,i%,1)<>mid$(a$,l%-i%+1,1) then exit for
       next
    if i%>l%\2 then print k%
next

3 楼

for k% = 1 to 99
    s% = k% * k%
    p% = int(log(s%) / log(10)) + 1
    for i% = 1 to p% \ 2
        if s%\(10^(i%-1))mod 10<>s%\(10^(p%-i%))mod 10 then exit for
    next
    if i% > p% \ 2 then print k%;
next

4 楼

for k% = 1 to 99
    a$ = str$(k% * k%)
    b$ = ""
    for i% = 1 to len(a$)
        b$ = mid$(a$, i%, 1) + b$
    next
    if val(b$) = k% * k% then print k%;
next

5 楼

for k% = 1 to 99
    a% = k% * k%
    b%=0
    do while a%
       b%=b%*10+a% mod 10
       a%=a%\10
    loop
    if b% = k% * k% then print k%;
next

我来回复

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