第九届蓝桥杯大赛软件类省赛 Java 大学 B试题 C: 复数幂 解答

package shengsai09th;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.math.BigInteger;
 
/********************************************************************************************************************************
 * 新面孔:throws FileNotFoundException
 * 		   BigInteger a = BigInteger.valueOf(2);
 * 		   BigInteger A = a.multiply(c).subtract(b.multiply(d));
 * 		   BigInteger B = a.multiply(d).add(b.multiply(c));
 * 		   PrintStream ps = new PrintStream(new File("C:\\Users\\Administrator\\Desktop\\abcd.txt"));//默认在项目的路径
 * 		   System.setOut(ps);//输出在abcd.txt里
 ********************************************************************************************************************************
 */
 public class C_ComplexPower{
	 public static void main(String[] args)	throws FileNotFoundException {
		 BigInteger a = BigInteger.valueOf(2);
		 BigInteger b = BigInteger.valueOf(3);
		 BigInteger c = BigInteger.valueOf(2);
		 BigInteger d = BigInteger.valueOf(3);
		 BigInteger k = BigInteger.valueOf(0);	//用于比较虚部是正是负,若最后虚部为正,则要在虚部前加+
		 //运算规则:a+bi c+di 相乘得(ac-bd)+ (ad+bc)i
		 for (int i = 1; i < 123456; i++) {	//注意边界
			 BigInteger A = a.multiply(c).subtract(b.multiply(d));	//需要设置临时变量,否则无法输出
			 BigInteger B = a.multiply(d).add(b.multiply(c));	
			 a = A;
			 b = B;
		 }
		 //输出
		 PrintStream ps = new PrintStream(new File("C:\\Users\\Administrator\\Desktop\\abcd.txt"));
		 System.setOut(ps);	//setOut控制系统定向输出
		 System.out.println(a + ((b.compareTo(k))>=0 ? "+" : "")+b+"i");
	 }
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值