- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前正在学习Perl,并试图解决一个小难题,以便从前4,000,000个斐波纳契项中找到偶数项的总和。我创建了一个似乎有效的Fibonacci数组,然后尝试了不同的方法以抛出奇数值项,并在尝试对所得数组求和时不断遇到错误,并得到以下报告:
Use of uninitialized value in addition (+) at prob2_3.plx line 23
#!/usr/bin/perl -w
# prob2_2.plx
use warnings;
use strict;
my @fib; my $i; my $t; my $n;
@fib = (1, 2);
for ($i=2; $i<4000000; $i++) {
my $new= ( $fib[$i-1] + $fib[$i-2] );
push @fib, $new;}
for ($t=3; $t<4000000; $t++) {
if (($fib[$t] % 2) != 0 ) {
delete $fib[$t]; } }
my $total = 0;
for ($n=1; $n<$#fib; $n++) {
$total += $fib[($n+1)];}
print $total;
最佳答案
该警告表示您正在向某些内容添加undef
。 delete $fib[$t];
是执行$fib[$t] = undef;
的不好方法,您稍后将其添加到$total
中。
您还有至少另一个错误:
前两个Fibonacci numbers是0和1,而不是1和2。
您有一个主要问题:
第4,000,000个Fib数将非常大,太大而无法容纳两倍。
仅供参考,
第10000有2090个数字:20793608237133498072112648988642836825087036094015903119682945866528501423455686648927456034305226515591757343297190158010624794267250973176133810179902738038231789748346235556483191431591924532394420028067810320408724414693462849062668387083308048250920654493340878733226377580847446324873797603734794648258113858631550404081017260381202919943892370942852601647398213554479081823593715429566945149312993664846779090437799284773675379284270660175134664833266377698642012106891355791141872776934080803504956794094648292880566056364718187662668970758537383352677420835574155945658542003634765324541006121012446785689171494803262408602693091211601973938229446636049901531963286159699077880427720289235539329671877182915643419079186525118678856821600897520171070499437657067342400871083908811800976259727431820539554256869460815355918458253398234382360435762759823179896116748424269545924633204614137992850814352018738480923581553988990897151469406131695614497783720743461373756 2186851068568260906963398154909212537145372418669116042505973537478237332681781821985092402269558264160166900847498160728435824886131848299053831501800478443537515542015738331055219809981238332532612286898240517778465884610797908078283671323847984517940110765690575221586803789615321608583872238829743804839319295412221008003135806885850025988795664632214278204484925650731065958088374016489964235633861097820456341224678729218456064091743606356182168838125623216644428229525375774927153653211342045306867424354545051032697681443701184949063902549349423589040315098773697224370533831653603885951169802459279352259015376349256548723808771830083010745694440024264364147569050945350728047646844921056800247399144905559043913692186963870929181892461571034503870502293006032416114107074539600801709282779518347632167052424858208014238665266338160829214428830954632590804718193292017101478280252213856563402074897963176632788722076077910344317001127535588134788887275038253890668230986833556957181378678829 82111710796422706778536913192342733364556727928018953989153106047379741280794091639429908796650294603536651238230626
第20000有4180个数字:15643443471097638497347653640727434581620509468559158831812454174045808038524338191274779345041433161036712377970871840524871575898463953143351017926326668833011884916988503772533837358120179430597822688352803606187544669324061926749041828685947384995004151665996027373007937120120462754853694956000194950041260395952175560976035108368996828278276268512744178385659584648815498881545115656877151620815270274211679267105921694057643728720232657918512795265210977398020477967380138855126162672732200240962147801325674797116435673725178082452625605624266516593910138379884765061246490925383078273262859646372683280297657079846071209615997963367146323624971699524131633705583112836129610335888363343524328603322228786489505081543311656786173730979396476480155527826383926549385517242893860175669329820654413920253692137346767398450689569662785367572359774211275650554670609065333830016259259785954721810911510627985072867987547284503582660897446164659142557997644315085594858536 3784108252178032271074802954600198046099069599908704661773131760849831642816417996715035093937470220182181889534962185895489306103459895434193985097367387094618307972802910562478216182762666136701767368192225760417881015443846208021779448910967838688115382683807583205819115313370404262815641934451691786736975534513561898691764200452150953843620429861813036340139554793317764376016113563835708864901446935800651830040403643111314377796939158424693424580073980913561974459880897762824530994153792843943160866552330889496731060052949844694393366546840630629276294240978609784787524001403635391792815622044665057951409203125430805931493161872669237664098744645927633119695078006366417175111008764464977305821311764064008510055292787840451627946143750385701739893709704260725805961225787830700700208691321092262676072834290127276840897490600792122744624255226136250547175172290655823553370907054810978951992040552164783616415667530478409778243586516564040189710782885912183152112656744661171607707576925 7072773697947064329836969249852382976202348037425889031090020976240691949742160088733357875561841760194799534815496104106903184713919847662253483806138312440578732122855388348848736018217032877013531004653902335692761900988709302797685265501972628217528866551995479526195626503247164073793787381643388365618488630255600890924552511767690989186316859159306438477097458585889829326938198129884953178437411315486719927412151054551726325421747462698125767761987300812744880048122138953746796038485281452086680809803469350470844184375258620810652745992631459076192613797545486775651410699327289089628593588395142531659083933746399666161863597357735290387376161440280731398703030590410957840047591721635117677190494658658256770952605314604687704388833897300447300322491720569722311756874534871145435101596346787454258165870310592717473670917638475152605474446188958081898150393481484970581519902582271877141251593259282483539345792009117894084860435326938689664322383123823631494470354941767039585133484331 3424688061679011669280526389994233115706189811373488915388180272165963004919891812315981511236146510432056564744909231099825952358804464206787003367175349143817295781131697530460839817524651569337902880208418806880838881666593628966489116087163735799448542359973849863029026088215666890266763712687033032074068277379252747813019864807624625944203986376078939610108249793954392253008329316265401792185583459475584721599068739989237674325042788384194790680937789769972764165924212232357196539050713922957353982728518263506456056434704171557195001851435948043743220101895451362055688562765598063167895334506120979001803994409151396470604593219932545661032550115909024081160187229962679568265554349554093909517280228152094120272483530629829115446740071472493266972750107881006669583149658103204327366159628981755853209931288710465528420688675573410073833991808074490301597976726055308352441572561092685275781723143582551795896053353754140820465755571226363643914078619228245294412610038660980664045265419 12783214030236752423547997110159548536582622929575859635210831021463363332532502412193578592457118234067116894159316798758933206918936334540039454055299199101076302263831614132510576874528929742319396129011617501
即使是第10,000个也无法容纳两倍,而第20,000个则是第10,000个的两倍,所以想象一下第4,000,000个将有多大!
风格问题:
my $i; for ($i=2; $i<4000000; $i++)
for my $i (2..$N-1)
my $N = 4_000_000;
关于perl - Perl挑战算法中的神秘“数组中未初始化的值”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6643983/
我正在尝试创建一个包含 int[][] 项的数组 即 int version0Indexes[][4] = { {1,2,3,4}, {5,6,7,8} }; int version1Indexes[
我有一个整数数组: private int array[]; 如果我还有一个名为 add 的方法,那么以下有什么区别: public void add(int value) { array[va
当您尝试在 JavaScript 中将一个数组添加到另一个数组时,它会将其转换为一个字符串。通常,当以另一种语言执行此操作时,列表会合并。 JavaScript [1, 2] + [3, 4] = "
根据我正在阅读的教程,如果您想创建一个包含 5 列和 3 行的表格来表示这样的数据... 45 4 34 99 56 3 23 99 43 2 1 1 0 43 67 ...它说你可以使用下
我通常使用 python 编写脚本/程序,但最近开始使用 JavaScript 进行编程,并且在使用数组时遇到了一些问题。 在 python 中,当我创建一个数组并使用 for x in y 时,我得
我有一个这样的数组: temp = [ 'data1', ['data1_a','data1_b'], ['data2_a','data2_b','data2_c'] ]; // 我想使用 toStr
rent_property (table name) id fullName propertyName 1 A House Name1 2 B
这个问题在这里已经有了答案: 关闭13年前。 Possible Duplicate: In C arrays why is this true? a[5] == 5[a] array[index] 和
使用 Excel 2013。经过多年的寻找和适应,我的第一篇文章。 我正在尝试将当前 App 用户(即“John Smith”)与他的电子邮件地址“jsmith@work.com”进行匹配。 使用两个
当仅在一个边距上操作时,apply 似乎不会重新组装 3D 数组。考虑: arr 1),但对我来说仍然很奇怪,如果一个函数返回一个具有尺寸的对象,那么它们基本上会被忽略。 最佳答案 这是一个不太理
我有一个包含 GPS 坐标的 MySQL 数据库。这是我检索坐标的部分 PHP 代码; $sql = "SELECT lat, lon FROM gps_data"; $stmt=$db->query
我需要找到一种方法来执行这个操作,我有一个形状数组 [批量大小, 150, 1] 代表 batch_size 整数序列,每个序列有 150 个元素长,但在每个序列中都有很多添加的零,以使所有序列具有相
我必须通过 url 中的 json 获取文本。 层次结构如下: 对象>数组>对象>数组>对象。 我想用这段代码获取文本。但是我收到错误 :org.json.JSONException: No valu
enter code here- (void)viewDidLoad { NSMutableArray *imageViewArray= [[NSMutableArray alloc] init];
知道如何对二维字符串数组执行修剪操作,例如使用 Java 流 API 进行 3x3 并将其收集回相同维度的 3x3 数组? 重点是避免使用显式的 for 循环。 当前的解决方案只是简单地执行一个 fo
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我有来自 ASP.NET Web 服务的以下 XML 输出: 1710 1711 1712 1713
如果我有一个对象todo作为您状态的一部分,并且该对象包含数组列表,则列表内部有对象,在这些对象内部还有另一个数组listItems。如何更新数组 listItems 中 id 为“poi098”的对
我想将最大长度为 8 的 bool 数组打包成一个字节,通过网络发送它,然后将其解压回 bool 数组。已经在这里尝试了一些解决方案,但没有用。我正在使用单声道。 我制作了 BitArray,然后尝试
我们的数据库中有这个字段指示一周中的每一天的真/假标志,如下所示:'1111110' 我需要将此值转换为 boolean 数组。 为此,我编写了以下代码: char[] freqs = weekday
我是一名优秀的程序员,十分优秀!