我使用查询字符串接受我的经典asp代码中的数字,然后程序将输出数字的数字之和。
<%
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 ....然后输出将是11 但是对于n = 123 ......输出将是6。 请帮助。
答案 0 :(得分:1)
将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 If
答案 1 :(得分:0)
只需在代码中进行一次更改,即使用运算符 \ 而不是 / 当你减少你的号码....
即。代替 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)
%>
对于那些不明白刚刚发生了什么的人,请参阅下文:
这就是为什么我没有得到正确的结果。 希望这有帮助!