【发布时间】:2018-10-15 21:35:19
【问题描述】:
我想反转 int 以便顺序从“从第一个到最后一个”更改为“最后一个到第一个”(例如,123 变为 321,100 变为 001,0003 变为3000 等)
我有以下代码,但根据它的工作方式,在该过程之前或之后的任何前导或尾随零都被完全跳过。 (0003 变为 3)
int reverseNumber(int number);
main()
{
int s = 123000000;
printf("%d\n", reverseNumber(s));
}
int reverseNumber(int number) {
int reversedNumber = 0, remainder;
while(number != 0)
{
remainder = number%10;
reversedNumber = reversedNumber*10 + remainder;
number /= 10;
}
return reversedNumber;
}
如何更改代码以使其在不遗漏零的情况下正常工作?
【问题讨论】:
-
您需要除
int之外的其他类型来表示前导零,最明显的是char *。 -
我已尝试回答链接问题,这是我从中派生代码的地方。我想在保持零的同时反转一个数字。
-
@Sneftel,您链接的问题没有解决前导零。
-
你想要的都是不可能的。数字前面的零或任何其他数量的零不会改变其值。 000001 等于 1。