gpt4 book ai didi

java - Java中1.5亿位数字的平方

转载 作者:行者123 更新时间:2023-12-01 14:01:28 24 4
gpt4 key购买 nike

好的,这就是交易。我编写了一个程序,创建一个具有 150000000 个不同地址的字节数组。然后我将其放入一个 for 循环中,该循环将为这些值分配一个 0-9 之间的随机正数,并将该数字输出到文件中。这一切都有效,但我遇到问题的地方是我实际上试图解决它的地方。我使用 BigInteger 类来尝试存储我尝试平方的数字。这是我尝试将数字放入 BigInteger 的代码

for(int i = 0; i<150000000; i++)
{
square = square.add(BigInteger.valueOf(number[i]));
}

并且我的编译器在运行时给出了错误:线程“main”中的异常 java.lang.NullPointerException 在 numberge.Numberge.main(Numberge.java:44)Java 结果:1

我也尝试过减少 for 循环的迭代次数,但没有帮助。有什么想法吗?

程序给我的整个输出是:运行:完成生成/现在写入文件平方150000000线程“main”中的异常 java.lang.NullPointerException 在 numberge.Numberge.main(Numberge.java:43)Java 结果:1构建成功(总时间:9 秒)

整个代码是

import java.util.Random;
import java.io.*;
import java.math.BigInteger;

public class Numbersqu {
static byte[] number = new byte[150000000];
static Random generator = new Random(System.currentTimeMillis());
static BigInteger square = null;

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException
{

for(int i = 0; i<150000000; i++)
{
number[i] = (byte) Math.abs(generator.nextInt(9));
}
System.out.println("done generating/now writing to file");
File file = new File("number.txt");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
for(int i = 0; i<150000000; i++)
{
bw.write(Integer.toString(number[i]));
}
bw.close();
System.out.println("generating number to square");
System.out.println(Integer.toString(number.length));
for(int i = 0; i<150000000; i++)
{
square = square.add(BigInteger.valueOf(number[i]));
}
System.out.println("Writing square to file");
File file2 = new File("square.txt");
if (!file2.exists())
{
file2.createNewFile();
}
FileWriter fw2 = new FileWriter(file2.getAbsoluteFile());
BufferedWriter bw2 = new BufferedWriter(fw2);
bw2.write(square.toString());
bw2.close();


}
}

据我所知,一旦我可以实际存储该数字,我就会对其进行平方。

最佳答案

所以就在这里。您的变量 square 为空。

static BigInteger square = null;

在此处使用之前将其初始化为某个值:

for(int i = 0; i<150000000; i++)
{
square = square.add(BigInteger.valueOf(number[i]));
}

关于java - Java中1.5亿位数字的平方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19324462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com