复数幂

设i为虚数单位。对于任意正整数n,(2+3i)^n 的实部和虚部都是整数。
求 (2+3i)^123456 等于多少? 即(2+3i)的123456次幂,这个数字很大,要求精确表示。
答案写成 "实部±虚部i" 的形式,实部和虚部都是整数(不能用科学计数法表示),中间任何
地方都不加空格,实部为正时前面不加正号。(2+3i)^2 写成: -5+12i,
(2+3i)^5 的写成: 122-597i
测试:
(2+3i)^2 -5+12i
(2+3i)^3 -46+9i
(2+3I)*4 -119-120i
(2+3i)^5 122-597i

代码如下:

public class Main {
    public static void main(String[] args) {
        fushu();
    }

    public static void fushu() {
        // 定义实部a,虚部b
        long a = 2, b = 3;
        String z = "";

        int i = 1;
        while (i < 123456) {
            long c, d;
            c = a * 2 - b * 3;
            d = a * 3 + b * 2;
            a = c;
            b = d;
            // 跳到4次幂
            i++;
        }

        if (b < 0) {
            z = a + "" + b + "i";
        } else {
            z = a + "+" + b + "i";
        }

        System.out.println(z);

    }
}
posted @ 2021-01-26 18:18  没有你哪有我  阅读(357)  评论(0编辑  收藏  举报