c++ 如何删除long [closed]中的尾随0

pod7payv  于 2023-01-03  发布在  其他
关注(0)|答案(2)|浏览(191)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

昨天关门了。
Improve this question
如何删除long中的所有尾随零?
例如450000000至45,2100至21
所有的数字都是正数如果有区别的话。

lmyy7pcs

lmyy7pcs1#

首先,你需要一个更精确的定义,在十进制表示中,“尾随零”意味着“可被10整除“。(同样,您可能会考虑二进制数可被2整除,十六进制数可被16整除。)如果一个数被10整除后的余数为10,则该数可被10整除(模(%)运算的结果)为零。在这种情况下,要从一个数字中 “修剪尾随零”,您需要将该数字除以所需的基数,直到它不再能被基数整除为止。

uint64_t trim_zeros(uint64_t number, uint64_t base = 10) {
  while (number != 0 && number % base == 0) number /= base;
  return number;
}
gcxthw6b

gcxthw6b2#

在模10的帮助下,您可以做到这一点

void removeTrailingZeros(long& n)
{   while (n % 10 == 0)    n /= 10;  }

相关问题