3.複數冪
設i爲虛數單位。對於任意正整數n,(2+3i)^n 的實部和虛部都是整數。
求 (2+3i)^123456 等於多少? 即(2+3i)的123456次冪,這個數字很大,要求精確表示。
答案寫成 "實部±虛部i" 的形式,實部和虛部都是整數(不能用科學計數法表示),中間任何地方都不加空格,實部爲正時前面不加正號。(2+3i)^2 寫成: -5+12i,
(2+3i)^5 的寫成: 122-597i
注意:需要提交的是一個很龐大的複數,不要填寫任何多餘內容。
【答案】:由於此題目的數據量極大用到java中的大數類,輸出結果在控制器上無法顯示完整,要輸出到文件中。
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigInteger;
public class Main {
public static void main(String args[]) throws IOException {
BigInteger a = new BigInteger("2");
BigInteger b = new BigInteger("3");
BigInteger c = new BigInteger("1");
BigInteger d = new BigInteger("0");
BigInteger e;
FileWriter f = new FileWriter("x.txt");
for (int i = 0; i < 123456; i++) {
e = c;
c = a.multiply(c).subtract(b.multiply(d));// c=a*c-b*d
d = a.multiply(d).add(b.multiply(e));// d=a*d-b*e
}
f.write(c + "+" + d + "i");
f.close();
}
}