我有一个问题,我想显示最多100的数字,其数字之和为7。
任何人都可以帮助我 支持有25。在2 + 5 = 7然后它将显示。我有问题打破25为2和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)
此代码将执行此操作。它使用数学知识,满足条件的第一个和最后一个数字分别是7
和70
。它也知道序列中的下一个数字总是比最后一个数字多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