gpt4 book ai didi

C++删除数字的第一位和最后一位

转载 作者:搜寻专家 更新时间:2023-10-31 00:34:38 25 4
gpt4 key购买 nike

我正在尝试编写一个程序来删除数字的第一位和最后一位。对于最后一位数字,将 int 除以 10 可以解决该问题。我需要找到一种方法来使用 % 删除第一个数字,但似乎我的逻辑在某处不正确,我的程序运行但无法正常工作。看到任何逻辑错误吗?

#include <iostream>
using namespace std;

int main() {
int x;
int y;
cout << "Enter a number to have the first and last didgets removed" << endl;
cin >> x;

x /= 10;
y = x;
int count = 0;

while (y > 1)
{
y /= 10;
count++;
}

int newNum = x %(10 ^ (count));

cout << newNum << endl;
cin.ignore();
cin.get();

return 0;
}

最佳答案

有几个问题,但关键的可能是这个:

int newNum = x %(10 ^ (count));

^ 是按位 xor,它不是幂运算符。

相反,您可以尝试这样的操作:

int newNum;
if (y < 10)
newNum = 0; // or what should it be?
else
{
int denominator = 1;
while (y >= 10)
{
y /= 10;
denominator *= 10;
}
newNum = x % denominator;
}

P.S. 有更短更快的算法,但我试图保留给定算法的逻辑。

关于C++删除数字的第一位和最后一位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25695791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com