Vbscript 数字和程序,得到错误答案
我已经使用querystring在我的经典asp代码中接受数字,然后程序将输出数字的位数总和Vbscript 数字和程序,得到错误答案,vbscript,asp-classic,Vbscript,Asp Classic,我已经使用querystring在我的经典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
<%
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。
请帮助。将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
尺寸n、d、和
总和=0
d=0
n=请求.查询字符串(“n”)
如果是数字(n),则
对于i=1到Len(n)
d=CInt(中间(n,i,1))
响应。写入(“
”&d)
sum=sum+d
下一个
响应。写入(“&n&”的位数之和为:“&Sum”)
如果结束
只需对代码进行一次更改,即使用操作符\而不是/
当你减少你的人数
i、 e.使用n=n\10代替n=CInt(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)
%>
对于那些不了解刚刚发生的事情的人,请参见以下内容:
希望这有帮助 回答得好。在经典asp中,注释可以以//开头,或者对于带有VBScript的注释,注释必须以“?仅
”
开头;不过,你可以将JavaScript作为一种语言与经典的ASP结合使用。非常感谢你,伙计。你太棒了@实际上,你不能使用JavaScript,这是一个常见的误解。您可以使用JScript,它是一种由Microsoft开发的、基于旧版本ECMAScript的活动脚本语言。