我有一个问题,我想要显示最大100的数字,其中它们的数字总和是7。
有没有人能帮我假设有25。在2+5=7中,它将被显示出来。我有问题打破25作为2和5
发布于 2010-04-30 19:54:58
我很难理解为什么一个人需要这样一个程序。
无论如何,7就是这样的一个数字,接下来是16,很明显,为了得到相同的和,你需要将10的数字增加1,并将1的数字减少1。因此,你实际上是在将数字增加9:
for($i=7;$i<=70;$i+=9) {
echo $i."\n";
}输出:
7
16
25
34
43
52
61
70编辑:
如果您不想使用模运算符(我知道,没有人会这样做!!),您可以获取每个数字,使用preg_split将其拆分为数字,然后使用array_sum求出数字之和:
for($i=1;$i<=100;$i++) {
if(array_sum(preg_split('//',$i)) == 7)
echo $i."\n";
}发布于 2010-04-30 19:54:29
这段代码可以做到这一点。它使用数学知识,即满足条件的第一个和最后一个数字分别是7和70。它还知道序列中的下一个数字总是比上一个数字多9:
for ($num = 7; $num <= 70; $num += 9)
echo $num . "\n";如果想要取任意两位数并对这些数字求和,则需要整数除法和模运算符,例如:
25 div 10 -> 2
25 mod 10 -> 5$x除以$y的整数可以在PHP中通过强制转换来完成,而模运算符则使用%运算符。
给出更具适应性的情况的程序如下所示:
for ($num = 1; $num < 100; $num++) {
$tens = (int)($num / 10);
$ones = $num % 10;
if ($tens + $ones == 7)
echo $num . "\n";
}发布于 2010-04-30 19:50:41
嗯,有7,16,25,34,43,52,61和70。现在你有了答案,所以你不需要一个程序。
https://stackoverflow.com/questions/2744202
复制相似问题