首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找数字总和为7的数字

查找数字总和为7的数字
EN

Stack Overflow用户
提问于 2010-04-30 19:40:23
回答 5查看 5.9K关注 0票数 1

我有一个问题,我想要显示最大100的数字,其中它们的数字总和是7。

有没有人能帮我假设有25。在2+5=7中,它将被显示出来。我有问题打破25作为2和5

EN

回答 5

Stack Overflow用户

发布于 2010-04-30 19:54:58

我很难理解为什么一个人需要这样一个程序。

无论如何,7就是这样的一个数字,接下来是16,很明显,为了得到相同的和,你需要将10的数字增加1,并将1的数字减少1。因此,你实际上是在将数字增加9:

代码语言:javascript
复制
for($i=7;$i<=70;$i+=9) {
        echo $i."\n";
}

输出:

代码语言:javascript
复制
7
16
25
34
43
52
61
70

编辑:

如果您不想使用模运算符(我知道,没有人会这样做!!),您可以获取每个数字,使用preg_split将其拆分为数字,然后使用array_sum求出数字之和:

代码语言:javascript
复制
for($i=1;$i<=100;$i++) {
        if(array_sum(preg_split('//',$i)) == 7)
                echo $i."\n";
}
票数 3
EN

Stack Overflow用户

发布于 2010-04-30 19:54:29

这段代码可以做到这一点。它使用数学知识,即满足条件的第一个和最后一个数字分别是770。它还知道序列中的下一个数字总是比上一个数字多9:

代码语言:javascript
复制
for ($num = 7; $num <= 70; $num += 9)
    echo $num . "\n";

如果想要取任意两位数并对这些数字求和,则需要整数除法和模运算符,例如:

代码语言:javascript
复制
25 div 10 -> 2
25 mod 10 -> 5

$x除以$y的整数可以在PHP中通过强制转换来完成,而模运算符则使用%运算符。

给出更具适应性的情况的程序如下所示:

代码语言:javascript
复制
for ($num = 1; $num < 100; $num++) {
    $tens = (int)($num / 10);
    $ones = $num % 10;
    if ($tens + $ones == 7)
        echo $num . "\n";
}
票数 1
EN

Stack Overflow用户

发布于 2010-04-30 19:50:41

嗯,有7,16,25,34,43,52,61和70。现在你有了答案,所以你不需要一个程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2744202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档