求一个整数的位数
C++ 吧里看到有人求助, 说是想写点代码求一个整数的位数, 以下是我的解决方法:
int64_t RecursionIter (const int64_t& num,
const int64_t& result)
{
if (num / 10 == 0) {
return result;
}
else {
return RecursionIter (num / 10, (result + 1));
}
}
int64_t Recursion (const int64_t& num)
{
return RecursionIter (num, 1);
}
而参考下一篇博客的思路, 也很容易写出解法的迭代版本:
int32_t Fuck (int64_t num)
{
int32_t result = 1;
while (num / 10 != 0) {
num /= 10;
++result;
}
return result;
}
迭代的话, 这样似乎更快:
int32_t Fuck (int64_t num)
{
if (num < 0) {
num *= -1;
}
int32_t result = 1;
while (num >= 10) {
num /= 10;
++result;
}
return result;
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步