C ++:在数字中查找特定数字
C++: finding a specific digit in a number
有人请指导我如何检查 integer
中是否存在特定数字。 为了代码优化,我试图避免使用 strings
或任何类型的 loops
来遍历所有 digits
integer
。
如果我需要找出4
是否存在于整数中,输入和输出样本如下:
示例输入:
154
示例输出:
true
所需代码:
bool ifExists(int digit, int number)
{
if()
{
return true;
}
else
{
return false;
}
}
可能的逻辑:
我相信一定有一种数学方法可以在if
条件下完成工作,但是我无法在cmath
中找到这样的方法]图书馆。
将整数转换为字符串,在字符串中搜索数字。
"mathematical" 方法必须做同样的事情,通过 division/remainder 计算数字序列乘以 10 并与给定数字进行比较。
我认为可以采用数学方法。通过以某种疯狂的方式使用 log(x)。
但是你肯定应该使用字符串或除以 10 的循环。log(x) 需要的资源远远超过你想要使用的方式。
此外,字符串或除以 10 比数学解决方案更容易阅读。
求数学解。
我建议您尝试将十进制数转换为二进制表示形式。然后可以为您要查找的数字创建过滤器。通过按位连接过滤器和转换后的值 & 你可以得到你想要的。我不确定这是否真的可行,但这将是我的第一个想法。
但正如我之前所说。这种方法对于 cpu 来说会非常昂贵并且难以阅读。
有人请指导我如何检查 integer
中是否存在特定数字。 为了代码优化,我试图避免使用 strings
或任何类型的 loops
来遍历所有 digits
integer
。
如果我需要找出4
是否存在于整数中,输入和输出样本如下:
示例输入:
154
示例输出:
true
所需代码:
bool ifExists(int digit, int number)
{
if()
{
return true;
}
else
{
return false;
}
}
可能的逻辑:
我相信一定有一种数学方法可以在if
条件下完成工作,但是我无法在cmath
中找到这样的方法]图书馆。
将整数转换为字符串,在字符串中搜索数字。
"mathematical" 方法必须做同样的事情,通过 division/remainder 计算数字序列乘以 10 并与给定数字进行比较。
我认为可以采用数学方法。通过以某种疯狂的方式使用 log(x)。
但是你肯定应该使用字符串或除以 10 的循环。log(x) 需要的资源远远超过你想要使用的方式。
此外,字符串或除以 10 比数学解决方案更容易阅读。
求数学解。
我建议您尝试将十进制数转换为二进制表示形式。然后可以为您要查找的数字创建过滤器。通过按位连接过滤器和转换后的值 & 你可以得到你想要的。我不确定这是否真的可行,但这将是我的第一个想法。
但正如我之前所说。这种方法对于 cpu 来说会非常昂贵并且难以阅读。