如何打印与前面的数字不同的数字?

如何打印与前面的数字不同的数字?

问题内容

例如,如果我有数字 35565,则输出为 3565。

所以,我的代码片段得到了个位数,但我不知道如何保留前一个数字以与下一个数字进行检查。

for {num = num / 10fmt.Print(num)        if num/10 == 0 {    break}}

登录后复制

正确答案

这种方法从右到左将数字分解为数字,将它们存储为整数切片,然后从左到右迭代这些数字以构建具有“连续唯一”数字的数字。

我最初尝试从左到右分解数字,但不知道如何处理占位零;从右到左分解它,我知道如何捕获这些零。

// unique removes sequences of repeated digits from non-negative x,// returning only "sequentially unique" digits:// 12→12, 122→12, 1001→101, 35565→3565.//// Negative x yields -1.func unique(x int) int {    switch {    case x = 0; i-- {        digits[i] = x % 10        x /= 10    }    // -- Build new, "sequentially unique", x from left-to-right    var prevDigit, newX int    for _, digit := range digits {        if digit != prevDigit {            newX = newX*10 + digit        }        prevDigit = digit    }    return newX}

登录后复制

这是一个go playground 进行测试。

可以通过翻转开头的负号并在末尾恢复它来适应处理负数。

以上就是如何打印与前面的数字不同的数字?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2485432.html

(0)
上一篇 2025年3月4日 21:46:30
下一篇 2025年2月28日 03:08:33

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论