我在我的经典asp代码中使用了querystring来接受数字,然后程序将输出该数字的数字之和。
<%
dim n,d,sum
sum = 0
d = 0
n = request.querystring("n") //Taking value from querystring
while n<>0
d = n mod 10
response.write("<br>"&d)
sum = sum + d``
n = Cint(n/10)
wend
response.write("<br>Sum of digits of "&request.querystring("n")&" is :
"&sum)
%>但问题是,它没有给出正确的答案,很少的价值观,例如。n=91....then输出为11,而n=123...the输出为6。请帮助。
发布于 2018-04-23 14:00:16
只需在代码中做一项更改,即在减少数量时使用运算符**而不是/** .
即用n = CInt(n/10)代替n = n\10
因此,代码将像黄油一样工作得很好:
<%
dim n,sum,d
sum = 0
n = request.querystring("n") 'taking value from querystring
while n <> 0
d = n mod 10
sum = sum +d
n = n\10 'using \ for integer division
wend
response.write("Sum of digits of : "&request.querystring("n")&" is = "&sum)
%>对于那些不了解刚刚发生的事情的人,请看下面的内容:
这就是为什么我没有得到正确的结果。希望这能有所帮助!
发布于 2018-04-21 22:10:47
将n看作字符串可能更容易一些,它实际上是一个字符数组。因为字符串是一个字符数组,所以我们可以循环遍历该数组并对每个值进行求和。
Dim n, d, sum
sum = 0
d = 0
n = Request.QueryString("n")
If IsNumeric(n) Then
For i = 1 To Len(n)
d = CInt(Mid(n,i,1))
Response.Write("<br />" & d)
sum = sum + d
Next
Response.Write("<br />Sum of digits of " & n & " is : " & sum)
End Ifhttps://stackoverflow.com/questions/49958932
复制相似问题