【发布时间】:2020-02-02 12:53:04
【问题描述】:
我想写一个函数来反转数字的两个部分之一:
输入是:num = 1234567; part = 2
输出为:1234765
所以这里是 part 只能是 1 或 2
现在我知道如何获得第 1 部分
int firstPartOfInt(int num) {
int ret = num;
digits = 1, halfDig = 10;
while (num > 9) {
ret = ret / 10;
digits++;
}
halfDigits = digits / 2;
for (int i = 1; i < halfDigits; i++) {
halfDigits *= 10;
}
ret = num;
while (num > halfDigits) {
ret = ret / 10;
}
return ret;
}
但我不知道如何获取第 2 部分并反转数字。如果您在此处发布代码,请不要使用vector<> 和其他与 C 不兼容的 C++ 功能
【问题讨论】:
-
如果你在这里发布代码,请不要使用vector和其他与C不兼容的特性;修复您的标签并让我们知道您使用 C 还是 C++ 会很有帮助。
-
我使用 C++,但我不喜欢容器(字符串除外)和模板
-
@ReQserFirFir 我写了一个答案。请让我知道你的想法。如果符合您的要求,请点赞并采纳。如果没有,请给我一些反馈
-
other C++ feature not compatible with CC 特性与 C++ 不兼容怎么办?here is part that can be only 1 or 2- 那么为什么你的函数只接受一个参数,而不是两个呢?为什么只有最后 3 位数字是倒置的,而不是像 6 位数字?什么是“第 1 部分”/“第 2 部分”?就return num % 1000 + num % 10 * 100 + num / 10 % 10 * 10 + num / 100 % 10? -
@KamilCuk 我需要只反转数字的一半的函数,第一个或第二个数字可以是 7 位、100 位甚至 2。我的函数从数字返回前半部分。示例:输入 12345 输出 123