Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有任何JavaScript解释器可以处理非常大的数字?_Javascript_Bignum - Fatal编程技术网

是否有任何JavaScript解释器可以处理非常大的数字?

是否有任何JavaScript解释器可以处理非常大的数字?,javascript,bignum,Javascript,Bignum,可能的重复项: 我只是写了一些代码来解决一个问题 我一直 未捕获的语法错误:意外标记非法 我在代码中看不到语法错误 我用的数字是1000位数。我在Chrome的控制台上运行 Number.MAX_VALUE > 731671765313306249192251196744265747423553491949349698352031277450632623957831801698480186947885184385861560789112949495459501737958331952

可能的重复项:

我只是写了一些代码来解决一个问题

我一直

未捕获的语法错误:意外标记非法

我在代码中看不到语法错误

我用的数字是1000位数。我在Chrome的控制台上运行

Number.MAX_VALUE >  7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450
并且得到了
false
。糟糕透了

有可以运行我的代码的解释器吗

这是代码,如果需要的话

var num = 7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450.toString();

var max = 0,
    length = num.length;

for (var i = 0; i < length; i++) {
     
     var consecTotal = 1,
         limit = i + 5;
      
      for (var j = i; j < limit; j++) {
        consecTotal *= parseInt(num.substr(j, 1), 10);
      }
      
      max = Math.max(max, consecTotal);
      
}

console.log(max);
var num=7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111093705544217506941658960408071984038509624554443681230987892724428490988845801566609791338754200524063689912560717606058611641090741002256915520005593577297257163626956188267042825248360082375304202963450.toString();
var max=0,
长度=num.length;
对于(变量i=0;i
问题是找到5个连续数的乘积的最大数。我不会逐字逐句地打出来,因为我认为欧拉项目不赞成把答案发布到网上(我甚至不确定我的答案是否可行)


我转向JavaScript,因为我不确定如何设置
int
来处理C中的数字。

听起来像是在寻找一个大的num类。似乎有一个用于,如果你想在C中使用它,你可以使用。

来实际解释
未捕获的语法错误:意外标记非法

这实际上是因为

...20752963450.toString();
              ^-------- ...the dot after a number is treated as a decimal point
                        Therefore this doesn't make sense.
                        But if you add a space in front of the dot, then it will work because
                        now JavaScript uses it to access the toString() method.

12323 .toString() // this will work as you'd expect it to if you come from Ruby or the like

但是,如果您添加空格
num
将是无穷大。因此,对于BigNum实现,您必须查看awoodland的答案。

首先,如果要将num变量用作字符串,它应该是正确的字符串文字。这就是你看起来在做的。我从未见过您尝试在那里使用的符号,我无法在Chrome或IE中使用它。只需使用:

var num = '73167176531330....';
其次,您的内部循环永远不会终止。j将始终小于j+5。你是说j 第三,你需要使你的外环只达到i
如果我做了这些改变,我会得到一个答案。我不知道这是否是您所寻求的答案。

谢谢,我根本没有意识到这一点+1+1,因为我没能发现那个问题!你也可以使用
(123).toString()
123.0.toString()
@Josh,但
()
看起来有点多余,
.0
对我来说很奇怪。虽然不知道这个问题的人可能会去掉这三个问题中的任何一个,因为他们认为这是多余的/一个输入错误。
200+'
是一个很好的解决方案吗?内部循环代码已经更新了。看起来在我发布第二个问题之前,你对代码做了一些修改。:)我认为当我使用
parseInt()
时,超限并不重要。未定义的
应转换为
0
。这将使等式为0,这很好,因为这些数字都不符合要求。@Alex即使它确实产生0,我也习惯于寻找fencepost错误,这就是我提到它的原因。干杯@乔希:还有,@roatinha,我甚至没有在他的代码片段中注意到这一点!