第九届蓝桥杯java B组—第三题复数幂(详细介绍)
文章目錄
- 1.題目如下
- 2.代碼實例
- 3.結果如下
- 4.代碼講解
- 5.詳細講解文件輸出
1.題目如下
設i為虛數單位。對于任意正整數n,(2+3i)^n 的實部和虛部都是整數。
求(2+3i)^123456 等于多少?即(2+3i)的123456次冪,這個數字很大,要求精確表示。
答案寫成 “實部±虛部i” 的形式,實部和虛部都是整數(不能用科學計數法表示),中間任何地方都不加空格,實部為正時前面不加正號。(2+3i)^2 寫成: -5+12i,
(2+3i)^5 的寫成: 122-597i 注意:需要提交的是一個很龐大的復數,不要填寫任何多余內容。
規定復數的乘法按照以下的法則進行:
設z1=a+bi,z2=c+di(a、b、c、d∈R)是任意兩個復數,那么它們的積(a+bi)(c+di)=(ac-bd)+(bc+ad)i。
考點:
大數類,文件輸出
2.代碼實例
import java.io.*; import java.math.BigInteger;public class Main {public static void main(String[] args) throws FileNotFoundException {PrintStream ps=new PrintStream(new FileOutputStream("C:\\MyEclipse\\file\\ppp.txt"));System.setOut(ps); //文件輸出int n=123456;BigInteger a=new BigInteger("2");BigInteger b=new BigInteger("3");BigInteger a1=new BigInteger("2");BigInteger b1=new BigInteger("3");for(int i=1;i<n;i++) {BigInteger ta=a;a=a.multiply(a1).subtract(b.multiply(b1));//a=a*a1-b*b1;b=ta.multiply(b1).add(b.multiply(a1));//b=a*b1+b*a1}System.out.println(a+(b.compareTo(BigInteger.ZERO)>0?"+":"")+b+"i");}3.結果如下
因為myeclipse控制臺會炸的,所以要以文件的形式輸出
一共135k的文件就對了,剩下的請讀者們按照代碼自己打一下
4.代碼講解
黃色標記的部分是你想要輸出到哪個文件的目錄下,
如果不寫這一行代碼的話,當n的值等于2的時候,輸出結果為:-512i而不是-5+12i
它的作用是,當一個數是整數時要加加號
5.詳細講解文件輸出
方法一:
這兩行代碼方可解決
PrintStream ps=new PrintStream(new FileOutputStream(“C:\MyEclipse\file\wlllrk.txt”));
System.setOut(ps); //文件輸出
方法二:
1.在你想要運行的程序上右鍵–> Run As --> Run Configurations
2.選擇Common窗口,設置文件保存路徑,以及是否以追加方式保存console輸出到文件。
總結
以上是生活随笔為你收集整理的第九届蓝桥杯java B组—第三题复数幂(详细介绍)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android --- 消息模式Toas
- 下一篇: 第九届蓝桥杯java B组—第六题递增三