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