算法训练 P1103  
时间限制:1.0s   内存限制:256.0MB
    
  
  编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:

  要求:(1)定义一个结构体类型来描述复数。
  (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。
  (3)必须使用结构体指针的方法把函数的计算结果返回。
  说明:用户输入:运算符号(+,-,*,/) a b c d.
  输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。

输入:
  - 2.5 3.6 1.5 4.9
输出:
  1.00+-1.30i

 
思路:
首先在java里面用类代替结构体,注意不要用public class, 且将成员变量设置为public便于使用,否则要写set,get函数,很麻烦;
格式输出注意:用system.out.printf()或者String.format()都可以,注意double 是%f 而不是lf.
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in);
char fh = cin.next().charAt(0); // 注意这里不用nextLine
fushu t1 = new fushu();
t1.shi = cin.nextDouble();
t1.xu = cin.nextDouble();
fushu t2 = new fushu();
t2.shi = cin.nextDouble();
t2.xu = cin.nextDouble();
if(fh == '+') {
t1.add(t2);
}
else if(fh == '-'){
t1.jian(t2);
}
else if(fh == '*') {
t1.chen(t2);
}
else {
t1.chu(t2);
} // System.out.println(t1.shi + "+" + t1.xu + "i");
// System.out.println(String.format("%.2f+%.2fi", t1.shi, t1.xu));
System.out.printf("%.2f+%.2fi", t1.shi, t1.xu);
} } class fushu{
public double shi;
public double xu;
fushu(){ }
fushu(double a, double b){
shi = a;
xu = b;
}
public void jian(fushu b) {
this.shi -= b.shi;
this.xu -= b.xu;
}
public void add(fushu b) {
this.shi += b.shi;
this.xu += b.xu;
}
public void chen(fushu b) {
double shi = this.shi;
double xu = this.xu;
this.shi = shi * b.shi - xu * b.xu;
this.xu = shi * b.xu + xu * b.shi;
}
public void chu(fushu b) {
double shi = this.shi;
double xu = this.xu;
this.shi = (shi * b.shi + xu * b.xu) / (b.shi * b.shi + b.xu * b.xu);
this.xu = (xu * b.shi - shi * b.xu) / (b.shi * b.shi + b.xu * b.xu);
}
}

  

15-算法训练 P1103的更多相关文章

  1. 算法训练 P1103

      算法训练 P1103   时间限制:1.0s   内存限制:256.0MB      编程实现两个复数的运算.设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数. ...

  2. Java实现 蓝桥杯 算法训练 p1103

    算法训练 P1103 时间限制:1.0s 内存限制:256.0MB 编程实现两个复数的运算.设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数. (2)复数之间的加法. ...

  3. 蓝桥杯 算法训练 ALGO-142 P1103

    算法训练 P1103   时间限制:1.0s   内存限制:256.0MB 编程实现两个复数的运算.设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数. (2)复数之间 ...

  4. 算法训练 最大的算式 DP

    算法训练 最大的算式 时间限制:1.0s   内存限制:256.0MB     问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果 ...

  5. 算法训练 Lift and Throw

    算法训练 Lift and Throw   时间限制:3.0s   内存限制:256.0MB      问题描述 给定一条标有整点(1, 2, 3, ...)的射线. 定义两个点之间的距离为其下标之差 ...

  6. 蓝桥杯 算法训练 ALGO-116 最大的算式

    算法训练 最大的算式   时间限制:1.0s   内存限制:256.0MB 问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量 ...

  7. TensorFlow利用A3C算法训练智能体玩CartPole游戏

    本教程讲解如何使用深度强化学习训练一个可以在 CartPole 游戏中获胜的模型.研究人员使用 tf.keras.OpenAI 训练了一个使用「异步优势动作评价」(Asynchronous Advan ...

  8. DRL 教程 | 如何保持运动小车上的旗杆屹立不倒?TensorFlow利用A3C算法训练智能体玩CartPole游戏

    本教程讲解如何使用深度强化学习训练一个可以在 CartPole 游戏中获胜的模型.研究人员使用 tf.keras.OpenAI 训练了一个使用「异步优势动作评价」(Asynchronous Advan ...

  9. 算法笔记_067:蓝桥杯练习 算法训练 安慰奶牛(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.每一个牧场都是 ...

随机推荐

  1. Redis学习笔记一(Redis的详细安装及Linux环境变量配置和启动)

     Redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 我使用的是下面这个版本: 若没有资源的话,我在 ...

  2. 1.ossutil初步使用

    ossutil对应的阿里云参考文档链接地址: https://help.aliyun.com/document_detail/50452.html?spm=a2c4g.11186623.6.1355. ...

  3. 从底层获取接口url携带的数据

    从底层获取接口url携带的数据 //实例化HttpServletRequest HttpServletRequest request = ServletHolderFilter.getContext( ...

  4. openwrt多wan限上下行速脚本,基于qosv4,imq模块替换成ifb模块[ZT]

    转自: http://www.right.com.cn/forum/thread-169414-1-1.html ,本人未经测试,转来自已备用 由于树莓派2装openwrt官方没有imq模块, 好像说 ...

  5. [cocos2d-x]游戏开发基础(图)

    FreeMind的.mm文件下载: http://yunpan.cn/cfL3f5PXRfikP (提取码:90f1)

  6. 一个困扰了我N久的bug , android.enableAapt2=false 无效

    Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT error: c ...

  7. git-04 同意分支合并

    https://blog.csdn.net/boysky0015/article/details/78185879/

  8. MVC part4

    SpringMVC 注解 @Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为类名称开头字母小写,你也可以自己指定, 如下 方法一: @Controller ...

  9. C# Excel导数据

    遇到的几个坑,记录一下. 隐藏表,隐藏行,隐藏列, 单元格合并 => 拆分并填充内容, 显示隐藏列,结果那个列 还是不显示出来,拖动旁边的列也不显示. 结果在旁边的列上,按左右箭头键就出来了,也 ...

  10. git 分支合并develop 重新拉取

    1.本地包 zb-local 上传到对应的线上分支 zb-online cd 进入本地所在文件夹,然后执行下面三项 git add . git commit -m '修改' git push   或者 ...