首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数字程序之和,得到错误答案

数字程序之和,得到错误答案
EN

Stack Overflow用户
提问于 2018-04-21 18:25:42
回答 2查看 481关注 0票数 1

我在我的经典asp代码中使用了querystring来接受数字,然后程序将输出该数字的数字之和。

代码语言:javascript
复制
<%
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。请帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-23 14:00:16

只需在代码中做一项更改,即在减少数量时使用运算符**而不是/** .

即用n = CInt(n/10)代替n = n\10

因此,代码将像黄油一样工作得很好:

代码语言:javascript
复制
<%
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)
%>

对于那些不了解刚刚发生的事情的人,请看下面的内容:

  1. 操作符/:执行浮点除法。
  2. 操作符*:执行整数除法。

这就是为什么我没有得到正确的结果。希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2018-04-21 22:10:47

将n看作字符串可能更容易一些,它实际上是一个字符数组。因为字符串是一个字符数组,所以我们可以循环遍历该数组并对每个值进行求和。

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49958932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档