查找数字总和为7的数字

时间:2010-04-30 11:40:23

标签: php numbers

我有一个问题,我想显示最多100的数字,其数字之和为7。

任何人都可以帮助我 支持有25。在2 + 5 = 7然后它将显示。我有问题打破25为2和5

5 个答案:

答案 0 :(得分:3)

我很难想到为什么需要这样的程序。

无论如何,7是一个这样的数字,接下来是16,显然得到相同的总和,你需要将10的数字递增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找到数字的总和: / p>

for($i=1;$i<=100;$i++) {
        if(array_sum(preg_split('//',$i)) == 7)
                echo $i."\n";
}

答案 1 :(得分:1)

此代码将执行此操作。它使用数学知识,满足条件的第一个和最后一个数字分别是770。它也知道序列中的下一个数字总是比最后一个数字多9个:

for ($num = 7; $num <= 70; $num += 9)
    echo $num . "\n";

如果你想取一个任意两位数的数字并对数字求和,你需要一个整数除法和模运算符,例如:

25 div 10 -> 2
25 mod 10 -> 5

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

提供更具适应性的案例的程序如下所示:

for ($num = 1; $num < 100; $num++) {
    $tens = (int)($num / 10);
    $ones = $num % 10;
    if ($tens + $ones == 7)
        echo $num . "\n";
}

答案 2 :(得分:0)

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

答案 3 :(得分:0)

作为问题的答案,存在有限数量的组合,并且列表很小。例如:

7,  0 + 7 = 7
16, 1 + 6 = 7
25, 2 + 5 = 7
34, 3 + 4 = 7
43, 4 + 3 = 7
52, 5 + 2 = 7
61, 6 + 1 = 7
70, 7 + 0 = 7

如果您需要它是动态的,并且适用于任何低于10的数字(例如6),请从该数字开始并添加9,每次执行此操作直至$num * 10为您提供数字你正在寻找。

答案 4 :(得分:0)

您可以随时使用以下代码生成数字达到任何限制

所有变量都是整数

for(i=1;i<=n;i++){
    //where n is the upper limit.In this case it is 100
    n=i;

    while(n!=0){

        d=n%10;// to extract the last digit

        s=s+7;//  to calculate sum of digits

        n=n/10;// to remove the last digit

    }

    if(s==7)

    System.out.println(+i);

}//close for loop