在整数中查找整数的命令是什么?

时间:2011-10-28 16:00:47

标签: c++

例如我有一个c ++,它从文件中获取2个整数。例如int a = 2052342和int b = 2.我需要进行搜索,搜索b是否在a中。所以在这个例子中,b在a里面,但是如果b将是例如7则不是。我应该使用什么样的功能,你能给我一个快速的演示吗? 编辑:不,这不是一个功课,今年我将参加程序员奥林匹克竞赛,所以我正在编写最后一个程序员奥林匹克运动会的所有C ++练习。

2 个答案:

答案 0 :(得分:3)

你使用一个非常好的例子而没有太多解释“如果b在a里面'的意思。你只是检查'int b'的子串是否在'int a'里面?如果B是205,或者234,那还算吗?

也许不是最好的方法,但很简单,就是将每个整数转换为字符串,然后进行子字符串检查以查看stringB是否是stringA的子字符串。

更新:事实上,当您解析文件时,我只是将其作为字符串读取,甚至不将其视为整数问题。你只是在进行子串检查。此外,如果将它们解析为整数,则会导致0-padding丢失。

如果你在谈论分裂或其他事情,可以通过分裂来完成。

答案 1 :(得分:3)

最简单的答案就是将数字保存在字符串中 表示,并使用std::find。如果你已经有数字了 内部格式,并将它们转换为字符串将是太昂贵: 如果a % 10 == b的低位数等于a,则b将为真 a /= 10将移除低位数。所以:

while ( a != 0 && a % 10 != b ) {
    a /= 10;
}
return a != 0;

应该这样做。