cnCalc计算器论坛

 找回密码
 注册
搜索
楼主: yangsc825

[求助] For循环语句嵌套问题

[复制链接]
 楼主| 发表于 2012-1-19 22:56:00 | 显示全部楼层
好吧,你的方法很暴力,可是for嵌套的问题……
比如for 1→a to 9
for 1→b to 9
……
next
next
外层嵌套做的事是循环内层循环吗?与最内层代码无关?
发表于 2012-1-19 23:27:36 | 显示全部楼层
你就坑爹吧,imath输出就一个done

Local I
For I,100,999
If instring(string(i),"0")~=0 then
Cycle
Endif
If mid(string(i^2),3,3)=="000" then
Disp I," ",i^2
Endif
Endfor
发表于 2012-1-20 00:40:31 | 显示全部楼层
楼上的那段怎么没写全...而且貌似只求了一种情况.....为什么要从第三位开始取3个0?Ti-basic里有没有求最长子序列的函数?如果有的话就很轻松了~另外问一下,ti-basic里"=="表示判等吗?不是一个等号吗?
发表于 2012-1-20 01:15:37 | 显示全部楼层
448.548.949啊
发表于 2012-1-20 01:29:05 | 显示全部楼层
我大概看懂了imath的意思,用了ti的函数
发表于 2012-1-20 08:55:47 | 显示全部楼层
用了ti的函数,但是一个答案也没求出
....
 楼主| 发表于 2012-1-20 09:07:45 | 显示全部楼层
谁告诉我关于for循环嵌套的问题啊,我重点想了解这个
发表于 2012-1-20 10:00:31 | 显示全部楼层
for i,1,9
for j,1,9
for k,1,9
i从1开始循环直到i=9
比如刚开始,i=1时
此时j从1到9循环
j=1时
k从1到9循环
k循环完
j=2
k再循环
然后j=3
...
j=9
k从1到9循环完
i=2
...
以此类推
直到i=9循环完
 楼主| 发表于 2012-1-20 10:11:49 | 显示全部楼层
本帖最后由 yangsc825 于 2012-1-20 10:14 编辑

原来是这样,那我在1楼发的代码哪里不对呢,不也是这个意思吗,但总得出结果990009
发表于 2012-1-20 10:21:57 | 显示全部楼层
29# yangsc825
100000*a  10000*b  c→x
你这句是干嘛?
你程序做的不对
最后没结果
循环结束后
a=9,b=9,c=9
当然输出的就是990009
发表于 2012-1-20 10:24:34 | 显示全部楼层
本帖最后由 零下一度 于 2012-1-20 11:03 编辑

另外你可以给100000开根号向上去整是317
所以从317开始循环就行
316往下平方都是五位数
 楼主| 发表于 2012-1-20 10:27:31 | 显示全部楼层
那……怎么改呢
发表于 2012-1-20 10:32:36 | 显示全部楼层
本帖最后由 零下一度 于 2012-1-20 10:35 编辑

22# imath
题目你搞错了
六位数中的零不一定是三个零挨着

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2012-1-20 10:35:11 | 显示全部楼层
本帖最后由 yangsc825 于 2012-1-20 10:50 编辑

好吧,我懂了,把b前的10000分别改成1000 100 10去算就行,多谢各位
我的方法是从结果出发的,分析结果的不同情况以推得答案
发表于 2012-1-20 10:40:02 | 显示全部楼层
32# yangsc825
用你这种方法的话
我觉得一种办法是当作字符串处理,通过字符串的相关函数判断是否平方后的数字有且只有3个零
还有一种办法就是模运算和取整函数结合判断各位是否是零
发表于 2012-1-20 10:45:48 | 显示全部楼层
31# 零下一度
不是可以从317开始,是必须从317开始,不然会输出有3个0的五位数。
 楼主| 发表于 2012-1-20 10:52:02 | 显示全部楼层
36# anzedick
是的
发表于 2012-1-20 11:14:57 | 显示全部楼层
我按楼主思路简单写了一下
Defin three0()=
Prgm
d:=int(sqrt100000)+1
a:=int(d/100)
b:=int((d-100*a)/10)
c:=d-100*a-10*b
for x,a,9
for y,b,9
for z,c,9
i:=x*100+y*10+z
k:=0
for j,1,4
if mod(int(i^2/10^j),10)=0 then
k:k+1
endif
if k=3
disp i,i^2
endfor
endfor
endfor
endfor
endprgm
 楼主| 发表于 2012-1-20 11:15:37 | 显示全部楼层
本帖最后由 yangsc825 于 2012-1-20 11:17 编辑

话说我现在真是后悔买了9860gii sd,它的函数和程序指令不如ti多,早知道买ti84 plus了
发表于 2012-1-20 11:20:12 | 显示全部楼层
39# yangsc825
我觉得Casio的效率和精度还有可编程性要好一些
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-11-24 04:29 , Processed in 0.076827 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表