无符号函数,用于返回使用任何数字的数字
Unsigned function to return digits using any numbers
我正在做一个练习,我必须编写一个无符号的编程 函数在C++ --- 函数返回了位数 在 num 中,并且必须处理任何数字。
The issue --- when I do unsigned num is greater than 10 digits, it still
shows 10 as the answer. what am I doing wrong?
unsigned numDigits(unsigned num)
{
if (num == 0)
return 0;
return 1 + numDigits(num / 10);
return (num);
}
int main()
{
unsigned num = 12345678901;
cout << "Number of Digits: " << numDigits(num);
}
无符号大小为:
0 to 65,535 or
0 to 4,294,967,295 (10 digits)
因此,请将您的功能更改为:
unsigned numDigits(long long unsigned num)
您问题的作弊解决方案还包括:
std::string dig = std::to_string(num);
std::cout << dig.size();
unsigned getNumDigits(long long unsigned num)
{
if (num < 9 )
return 1;
return 1 + getNumDigits(num / 10 );
}
@ram,谢谢指出。最大保证无符号值为 65535 。容纳超过此值的值将需要更大的(值容纳)类型。最大无符号值是可能的长长无符号。值 0 也表示 1 位数字,因此与 9 进行比较。
相关文章:
- std::stoi 的版本拒绝任何非数字
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- C++:创建1000次唯一的随机分布,在任何分布中都没有重复的数字
- 是否有任何内置函数可以检查给定的两个数字在给定整数数组中的顺序是否相同?
- 如何在C++中生成低于或高于某个数字的任何随机数?
- 如果否则错误:如何使其打印任何数字
- 该代码不会在其中显示任何数字输入.如何使它显示任何输入
- 用字母打印以 10-16 为基数(我被困在一个必须打印出任何数字的项目上)
- 如何为字符串编写正则表达式,其中包含一个数字至少一个数字,并且不包含任何字母
- 可被数组中的任何数字整除的数字
- 确定来自给定数字集的数字中的任何一个的最有效方法是零
- 为什么此代码只能识别文本文件中的第一行?输入任何大于 1 的数字都会返回"Atomic Number Not Found"
- 无符号函数,用于返回使用任何数字的数字
- 0x80020009 OLE异常访问除0以外的任何数字
- 我如何从CPP中的任何给定号码中的任何给定号码中获得第三位数字
- 我可以检查给定的数字是否可以是具有n个术语的任何算术进程的总和
- 像儒略数字用于计算日期一样,是否有任何特定的数字来计算时间
- 找到最大.任何给定数字的功率值小于另一个给定数字
- 测试一个数字是否具有小数值,而没有任何库
- 有没有办法检查(在控制台应用程序中)键盘上是否按下了 A-Z 和 1-9 的任何字母数字键