主题:从1,2,3...100这一百个自然数................
anson985
[专家分:0] 发布于 2005-05-28 21:55:00
从1,2,3...100这一百个自然数中,任取两数相乘,其积能被9整除的数对有多少对
该如何编写 我不会 教教我`~~~用qbasic```[em10][em10][em10][em10]
回复列表 (共20个回复)
沙发
moz [专家分:37620] 发布于 2005-05-29 09:08:00
两个for一个if
板凳
anson985 [专家分:0] 发布于 2005-05-29 15:33:00
我不会用数组
能不能写出来让我看看啊?~?~??
3 楼
anson985 [专家分:0] 发布于 2005-05-29 15:43:00
我是这样写的 为什么执行死循环
n=0
for i = 1 to 100 step 1
for j = 1 to 100 step 1
if i*j mod 9 = 0 then
n=n+1
else
n=n
end if
next j
next i
print "n="; n
end
这样执行是一个死循环 我的思路就是如果能整除就记录n为次数n=n+1
可是为什么.`.................
请高手写出答案 和具体解法过程
偶只是个初学者
4 楼
lbvv [专家分:0] 发布于 2005-05-29 16:14:00
去捍第一句 N=0,每次循环都把0又赋给N,当然错了。
5 楼
anson985 [专家分:0] 发布于 2005-05-29 16:52:00
去掉第一个之后N就没有赋值了~~怎办啊~~~救命啊
请写出答案啊~~
6 楼
moz [专家分:37620] 发布于 2005-05-29 17:21:00
defint a-z '[color=000FF0]默认全部变量为短整形[/color]
n=0
for i = 1 to 100 '[color=000FF0]step可以省略,默认为+1[/color]
for j = (i+1) to 100 '[color=000FF0]应该是从i到一百,才不会有重复换位或相同的乘数[/color]
if i*j mod 9 = 0 then '[color=000FF0]n=n 这一句没有任何作用[/color]
n=n+1
print i;"*";j;"=";i*j,
end if
next j
next i
print "n="; n
end
'[color=000FF0]按道理你的程序没大的错误,不可能死循环的。你肯定隐瞒了一些事实。否则我会很佩服你不改变for的值也能写得出死循环的for程序来。[/color]
7 楼
anson985 [专家分:0] 发布于 2005-05-29 17:42:00
for j=(i+1) to 100 我此终不那么明白 另外可以改成 for j = i to 100麽?~
我不知我的是不是死循环 总之画面显示n=.....一直刷个满屏 之后屏幕又变黑之后又刷 害我要开任务管理器来关闭```现在试你的程序行不行先算
8 楼
anson985 [专家分:0] 发布于 2005-05-29 17:46:00
我不知答案对不对啊
总共有1265种可能性```
9 楼
anson985 [专家分:0] 发布于 2005-05-29 17:48:00
6楼的 如果我把for j = (i+1) to 100
改成 for j = i to 100
答案就变成 1298了
10 楼
anson985 [专家分:0] 发布于 2005-05-29 17:49:00
不管怎样 很谢谢6楼的兄弟 能帮我解决这个问题
我现在就是不知答案对不对``让我明天找老师看看就知道了
我来回复