gpt4 book ai didi

c++ - 获取数字的数字有更好的选择吗? (C++)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:54 24 4
gpt4 key购买 nike

我知道您可以使用模数和除法来获取数字的数字。以下是我过去的做法:(伪代码让阅读本文的学生为他们的家庭作业做一些工作):

int pointer getDigits(int number) 
initialize int pointer to array of some size
initialize int i to zero
while number is greater than zero
store result of number mod 10 in array at index i
divide number by 10 and store result in number
increment i
return int pointer

无论如何,我想知道是否有更好、更有效的方法来完成这项任务?如果不是,是否有任何替代方法来完成此任务,避免使用字符串? C 风格还是其他风格?

谢谢。我问是因为我想在我的个人项目中这样做,而且我想尽可能高效地做到这一点。

非常感谢任何帮助和/或见解。

最佳答案

与动态分配数组所需的时间相比,提取数字所需的时间将相形见绌。考虑在结构中返回结果:

struct extracted_digits
{
int number_of_digits;
char digits[12];
};

您需要为最大位数选择一个合适的值(此处为 12,这对于 32 位整数来说足够了)。或者,您可以返回 std::array<char, 12>并使用无效值对终端进行编码(因此,在最后一个值之后,存储 10 或其他非数字的内容)。

根据您是否要处理负值,您还必须决定如何报告一元减号 ( - )。

关于c++ - 获取数字的数字有更好的选择吗? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4141078/

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