我试图在C ++中实现以下逻辑。这里x和y是2个整数类型的变量。 xs和ys是string类型的2个变量。我希望将整数转换为字符串,然后继续逻辑。
def isGoodPoint(x,y):
xs=str(abs(x))
ys=str(abs(y))
xsum=0
ysum=0
for c in xs:
xsum=xsum+int(c)
for c in ys:
ysum=ysum+int(c)
if xsum+ysum <=19:
return True
我的C ++源代码:
转换无法正常工作,我在xs和ys中得到的值不正确。例如:如果我的函数调用是:isGoodPoint(0,0),那么在调试模式下,xs和ys中的值类似于45和50或一些奇怪的值。实际上xs和ys的值应为0。
我错过了什么吗?
答案 0 :(得分:4)
您可能想要的是添加每个数字的数字。你现在正在做的是添加每个数字的ASCII值。如果要添加数字,则必须减去第一个数字的ASCII值:
for each (char c in xs)
xsum = xsum + (c - '0');
for each (char c in ys)
ysum = ysum + (c - '0');
应该这样做。在您的代码中,此表达式为:
xsum = xsum + int(c);
创建一个int
,其值为c
。由于c
是一个char并且可以转换为int,因此您最终得到的只是int
,其中包含该字符的ASCII值。