【发布时间】:2020-01-30 07:10:04
【问题描述】:
我们以数字 123 为例。我将如何移动 1 以使结果数字为 231?
unsigned long int N;
scanf("%lu", &N);
unsigned long int firstDigit;
while (N >= 10)
{
N /= 10;
firstDigit = N;
count++;
}
我有这个代码来识别第一个数字是什么,但现在我不知道如何移动它。
【问题讨论】:
-
现在你已经得到了第一个数字,将它乘以足够的 10 次以使其处于正确的位置(
count在这里很有用),然后从N中减去它。比如N是123,那么firstDigit是1,count应该是2。1乘以10两次得到100。123减去23。剩下的很简单。 -
我会用字符串来做这个
-
可以双向完成,取决于作业的要求。 (尽管我同意使用字符串会更容易)。在数字上,找到第一个数字后,您需要从
N中减去10^(count-1) * digit,然后乘以10并添加digit。 -
如果输入的是
000123,结果应该是001230还是231?