分析流程图 - 决定框中应该有多少个数字

时间:2015-10-26 19:59:43

标签: flowchart

我在解决以下流程图问题时遇到问题。你能尽快帮助我吗?

链接如下: - 问题3和问题4:

http://placement.freshersworld.com/placement-papers/ThoughtWorks/Placement-Paper-Whole-Testpaper-29732

1 个答案:

答案 0 :(得分:0)

问题3:

让我们先了解说明。

指令3 有点含糊不清,无论是指箱号还是方框中的号码。当你阅读其余的指令都涉及对指令2进行更改时,这变得更加简单。因此我们可以得出结论,它意味着第一个框号,它也是指令文本中提到的第一个数字而不是框中的数字。

指令4 由于看似多余的“其中”这个词的使用而有点令人困惑。如果指令4被解释为意味着查看框6中的数字并转到该指令编号,如果您尝试解决问题的其余部分,我们就会有一个无限循环。但如果我们将其解释为: var instruction2Variables=[null,1,10]; var boxes=[null,8,6,5,7,4,2,2,11,8,-2,2,1]; var instructions=[]; instructions[1]=function() { boxes[11]=boxes[11]+3; }; instructions[2]=function() { instruction2Variables[2]=instruction2Variables[1]; }; instructions[3]=function() { return instruction2Variables[1]%2==1; } instructions[4]=function() { return boxes[boxes[6]]; } instructions[5]=function() { instruction2Variables[1]+=2; } instructions[6]=function() { boxes[11]=boxes[5]+boxes[11]; } instructions[7]=function() { instruction2Variables[1]+=boxes[12]; instruction2Variables[2]-=boxes[12]; } instructions[8]=function() { return instruction2Variables[2]<boxes[1]; } instructions[9]=function() { return 2; } var loops=0; for(var i=1;i<10;i++) { loops++; if(loops>1000){console.log('breaking an endless loop...');break;} console.log('Instruction '+i); var result=instructions[i](); if(i==3) { if(!result){i=6;continue;} }else if(i==4){ console.log('Going to instruction '+result); i=result;continue; }else if(i==8){ if(result){i=10;break;} } } boxes.shift();//get rid of our leading null value console.log(boxes);//[8, 6, 5, 7, 4, 2, 2, 11, 8, -2, 5, 1] 然后我们没有无限循环。

让我们编写一些代码,以下是您可以在JavaScript控制台中执行的JavaScript,其中chrome是ctrl + shift + j:

8

问题4:

首先我们需要实现yes / no,因为指令3实际上指的是错误的方式。在指令1中没有问题,因此指令3的“否”结果应该指向上意味着如果“是”则再次重复指令1。

指令2 乍一看似乎超出了我们的12个方框,但这实际上意味着我们正在增加我们存储永远为零的结果。

解决这个问题非常简单。我们的第一个循环我们将在框2中存储0。我们的第二个循环我们将在框4中存储0。我们的第三个循环我们将在框6中存储0。在此之后,我们必须在此处停止循环指向不破坏我们的数据。我们在第一时间的答案似乎是6,但是我们正在更改指令1中的盒数据并更改指令2中的指令1.因此,在我们第三次执行指令1之后,我们将有2,4和6的方框然后我们将第三次运行指令2,从而增加对方框8的方框引用。最后我们想要打破循环,所以我们需要方框3来存储值{{1}}。