Gra*_*SOS 0 perl for-loop project
我是一名初级编码员,我已经开始从 projecteuler.net 做 Project Euler 的工作,并且遇到了问题 #1。问题是:
如果我们列出所有 10 以下的自然数是 3 或 5 的倍数,我们会得到 3、5、6 和 9。这些倍数之和是 23。
找出 1000 以下所有 3 或 5 的倍数之和。
我也有以下代码:
#!/usr/bin/perl
use strict;
use warnings;
my $a;
my $b;
my $c = 0;
my $d = 0;
my $e;
for ($a= 0; $a < 1000; $a += 3 ) {
$d = $d + $a;
}
for ($b= 0; $b < 1000; $b += 5 ) {
$c = $c + $b;
}
$e = $c + $d;
printf "$e \n";
Run Code Online (Sandbox Code Playgroud)
我的输出是这样的:
266333
但我知道一个事实是错误的。也许它正在讨论 5 和 3 共享的常见答案,例如 15 或 45。
不管是什么,建议?
小智 5
如果涉及两个循环,它们都需要一些内部条件来跳过一些迭代。也许您还可以考虑仅使用一个循环的替代解决方案:
for (my $n = 1; $n < 1000; $n++) {
if ( ... ) { # <--*
$d += $n;
}
}
Run Code Online (Sandbox Code Playgroud)
它可能更容易,更少的代码重复。
现在我们只需要找出该if语句的关键表达式。:-)