如果您尝试运行以下代码
public class Main {
public static void main(String[] args) {
long a = (long)Math.pow(13, 15);
System.out.println(a + " " + a%13);
}
}
Run Code Online (Sandbox Code Playgroud)
你会得到"51185893014090752 8"
的正确值13 ^ 15是51185893014090757,即,比由返回的结果更大的Math.pow由5.任何可能导致它的想法?
有一个奇怪的分段错误错误.以下代码运行正常
#include <stdlib.h>
#include <stdio.h>
main()
{
int matrixSize = 1000;
int i,j;
double a[matrixSize][matrixSize];
for (i = 0; i < matrixSize; i++)
for (j = 0; j < matrixSize; j++)
a[i][j] = rand() % 10;
double b[matrixSize][matrixSize];
for (i = 0; i < matrixSize; i++)
for (j = 0; j < matrixSize; j++)
b[i][j] = rand() % 10;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试再初始化一个2D数组时,我得到"分段错误"异常:
#include <stdlib.h>
#include <stdio.h>
main()
{
int matrixSize = 1000;
int i,j;
double a[matrixSize][matrixSize];
for (i = …Run Code Online (Sandbox Code Playgroud)