博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法笔记_162:算法提高 复数归一化(Java)
阅读量:7258 次
发布时间:2019-06-29

本文共 1087 字,大约阅读时间需要 3 分钟。

目录

 


1 问题描述

编写函数Normalize,将复数归一化,即若复数为a+bi,归一化结果为a/sqrt(a*a+b*b) + i*b/sqrt(a*a+b*b) 。使用结构体指针类型作为函数参数可能是必要的。其中实部和虚部由键盘输入,输出为归一化结果,如果归一化结果的实部或虚部为小数的要求保留一位小数。
样例输入:(格式说明:3 4 分别为以空格隔开的实数的实部和虚部) 3 4 样例输出: 0.6+0.8i
样例输入: 2 5 样例输出: 0.4+0.9i

 

 


2 解决方案

 

具体代码如下:

 

import java.util.Scanner;public class Main {        public void Normaliz(double a, double b) {        double c = Math.sqrt(a*a + b*b);        if(a % c != 0) {            a = a / c;            System.out.printf("%.1f", a);        } else {            a = a / c;            int a1 = (int) a;            System.out.print(a1);        }        if(b > 0)            System.out.print("+");        if(b % c != 0) {            b = b / c;            System.out.printf("%.1f", b);        } else {            b = b / c;            int b1 = (int) b;            System.out.print(b1);        }        System.out.print("i");    }        public static void main(String[] args) {        Main test = new Main();        Scanner in = new Scanner(System.in);        double a = in.nextDouble();        double b = in.nextDouble();        test.Normaliz(a, b);    }}

 

转载地址:http://uzvdm.baihongyu.com/

你可能感兴趣的文章