import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.math.BigInteger; public class Main { public static void main(String[] args) throws FileNotFoundException { PrintWriter out = new PrintWriter( // 打印流输出到复幂数.txt中 new OutputStreamWriter(new FileOutputStream("复幂数.txt"))); BigInteger a = BigInteger.valueOf(2); // 相当于(a+bi)*(x+yi) BigInteger b = BigInteger.valueOf(3); // a、b两个值一值不变 BigInteger x = BigInteger.valueOf(2); BigInteger y = BigInteger.valueOf(3); for (int i = 2; i <= 123456; ++i) // 每次都是两组数据相乘 { BigInteger t1 = a.multiply(x); // a*x BigInteger t2 = a.multiply(y); // a*y BigInteger t3 = b.multiply(x); // b*x BigInteger t4 = b.multiply(y); // b*y x = t1.subtract(t4); // i^2==-1 ax-by y = t2.add(t3); // bx+ay } // 由于数字太长,打印台根本输出不了,即便是输出了,也看不到,所以直接砸在控制台Ctrl+C复制即可,然后粘贴到一个txt文档中 // 可以通过输出流或打印流输出到一个文档中即可 out.println(x.toString() + y.toString() + "i"); // 这个题不用想y也一定是负数,要不然那么大的一个数还要判断正负? out.close(); // 释放资源 } }