您当前的位置: 首页 >  Java

梁同学与Android

暂无认证

  • 4浏览

    0关注

    618博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

第九届蓝桥杯java B组—第三题复数幂(详细介绍)

梁同学与Android 发布时间:2019-08-13 13:29:41 ,浏览量:4

文章目录
    • 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;i0?"+":"")+b+"i");
	}
3.结果如下

因为myeclipse控制台会炸的,所以要以文件的形式输出 在这里插入图片描述 一共135k的文件就对了,剩下的请读者们按照代码自己打一下

4.代码讲解
  1. PrintStream ps=new PrintStream(new FileOutputStream(“C:\MyEclipse\file\ppp.txt”)); 黄色标记的部分是你想要输出到哪个文件的目录下,
  2. b.compareTo(BigInteger.ZERO)>0这句代码的意思是:b是否大于0
  3. (b.compareTo(BigInteger.ZERO)>0?"+":"")+b:如果大于零b的前面就添加一个加号,否则b的前面就为空 如果不写这一行代码的话,当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输出到文件。

在这里插入图片描述

关注
打赏
1660730345
查看更多评论
立即登录/注册

微信扫码登录

0.0771s