首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试理解调车场算法

尝试理解调车场算法
EN

Stack Overflow用户
提问于 2019-02-01 19:03:29
回答 1查看 103关注 0票数 1

我正在尝试做Shunting-yard algorithm,所以我开始研究它。在这样做的过程中,我发现了一些我并不真正理解的有趣的文档:

代码语言:javascript
复制
    // 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))。有人能帮我理解为什么这个算法要这么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-01 19:06:07

因为否则你只会把数字加起来。例如,假设你想要123:你得到1,与10相乘得到10,添加2得到12,与10相乘得到120,然后添加3得到<代码>D9。

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54478184

复制
相关文章

相似问题

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