我想创建从2到有没有零和一的任何有序数字。
例如1,10,11,15,41,50,60,61等这些是无效的数字
我的尝试:
for($i=0, $ii=1000; $i<$ii; $i++){
if($i%11){
continue;
}
}
但这不起作用
答案 0 :(得分:2)
您可以将数字视为字符串并搜索字符&#34; 0&#34;和&#34; 1&#34;。
<?php
for($i=0; $i<100; $i++){
if(strpos((string) $i, '0') !== false) continue; // contains 0
if(strpos((string) $i, '1') !== false) continue; // contains 1
echo $i . "\n";
}
请注意strpos()
返回给定字符串(又名haystack)中搜索字符串(aka needle)的第一个出现位置,如果未找到匹配则返回false
。这就是为什么您必须将strpos()
与!== false
的结果进行比较,因为如果只使用0
,false
也会被视为== false
。
有关示例的详细文档,请参阅http://php.net/manual/en/function.strpos.php。
答案 1 :(得分:0)
生成一个整数,将其转换为八进制字符串,然后将每个数字的值增加2.我不是PHP程序员,所以我会给你伪代码。
foo = 1
octFoo = decoct(foo)
// at this point, octFoo is equal to 1
// Now go through each character in octFoo and increase it by 2.
// So 0 becomes 2, 1 becomes 3, etc.
如果数字为8,则octFoo
为10
,最终结果为32
。
如果您想编写自己的整数到字符串例程,则可以在没有中间八进制步骤的情况下执行此操作。而不是使用数字0到7,使用数字2到9。