gpt4 book ai didi

c++ - 试图理解调车场算法

转载 作者:行者123 更新时间:2023-11-30 01:03:11 25 4
gpt4 key购买 nike

我正在尝试执行 Shunting-yard algorithm所以我开始研究它。在这样做的同时,我发现了一些我不太理解的有趣文档:

    // Current token is a number, push 
// it to stack for numbers.
else if(isdigit(tokens[i])){
int val = 0;

// There may be more than one
// digits in number.
while(i < tokens.length() &&
isdigit(tokens[i]))
{
val = (val*10) + (tokens[i]-'0');
i++;
}

values.push(val);
}

我不明白为什么在 while 中,变量 val 被乘以 10 (val=(val*10)) .谁能帮我理解为什么算法必须这样做?

最佳答案

否则您只需添加数字即可。比如说你想要 123:你得到 1,乘以 10 得到 10,加上 2 得到 12,乘以 10 得到 120,然后加上 3 得到 123

如果您省略了 10 的乘法,您只会得到 1 + 2 + 3 == 6

关于c++ - 试图理解调车场算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54478184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com