C ++:在数字中查找特定数字

时间:2015-12-27 10:41:51

标签: c++ math digits

有人请指导我如何检查integer中是否存在特定数字。 为了代码优化,我试图避免使用strings或任何类型的loops 来遍历{{1}的所有digits }}。

如果我需要找出integer是否存在于整数中,输入和输出样本如下:

示例输入:

4

示例输出:

154

所需代码:

true

可能的逻辑:

我相信必须有一个数学方法才能在bool ifExists(int digit, int number) { if() { return true; } else { return false; } } 条件下完成工作,但是我无法在if库中找到这样的方法。

2 个答案:

答案 0 :(得分:4)

将整数转换为字符串,对数字执行字符串搜索。

"数学"方法必须这样做,用除法/余数计算数字序列10并与给定的数字进行比较。

答案 1 :(得分:0)

我认为,数学方法是可行的。通过一些疯狂的方式使用log(x)。

但是你肯定应该使用字符串或循环除以10. log(x)需要比你想要使用的方式更多的资源。

与数学解决方案相比,字符串或除以10更容易阅读。

对于数学解决方案。

我建议你尝试在它的二进制表示中转换十进制数。然后可以为您查找的数字创建过滤器。通过按位和方式连接滤波器和变换值。你可以得到你想要的东西。我不确定这是否可能,但这是我对方法的第一个想法。

但正如我之前所说。这种方法对于cpu来说非常昂贵,并且难以阅读。