演算法筆記_156:演算法提高 6-17複數四則運算(Java)

來源:互聯網
上載者:User

標籤:scanner   通過   除法   result   擷取   分割   方案   列印   else   

目錄

1 問題描述

2 解決方案

  1 問題描述設計複數庫,實現基本的複數加減乘除運算。
  輸入時只需分別鍵入實部和虛部,以空格分割,兩個複數之間用運算子分隔;輸出時按a+bi的格式在螢幕上列印結果。參加範例輸入和範例輸出。
  注意考慮特殊情況,無法計算時輸出字串"error"。範例輸入2 4 * -3 2範例輸出-14-8i範例輸入3 -2 + -1 3範例輸出2+1i

 

 

2 解決方案

此題判斷錯誤主要在除法運算上,除法運算有可能獲得小數,所以在擷取輸入數字時,就得用double類型來定義,但是下面的代碼在系統評分中有一組資料無法通過,改了好幾遍,選擇放棄>~<...

具體代碼如下:

import java.util.Scanner;public class Main {        public void getResult(String A) {        String result = "";        String[] temp = A.split(" ");        double a = Integer.valueOf(temp[0]);        double b = Integer.valueOf(temp[1]);        double c = Integer.valueOf(temp[3]);        double d = Integer.valueOf(temp[4]);        if(temp[2].equals("+")) {            a = a + c;            c = b + d;        } else if(temp[2].equals("-")) {            a = a - c;            c = b - d;        } else if(temp[2].equals("*")) {            double a1 = a;            a = a*c - b*d;            c = a1*d + b*c;        } else if(temp[2].equals("/")) {            double a1 = a;            if(c*c + d*d == 0) {                System.out.println("error");                return;            }            a = (a*c + b*d) / (c*c + d*d);            c = (b*c - a1*d) / (c*c + d*d);        }        if(!temp[2].equals("/")) {            int a1 = (int) a;            int c1 = (int) c;            if(c1 >= 0)                 result = result + a1 + "+" + c1 + "i";            else                result = result + a1 + c1 + "i";        } else {            if(c >= 0)                 result = result + a + "+" + c + "i";            else                result = result + a + c + "i";        }        System.out.println(result);    }        public static void main(String[] args) {        Main test = new Main();        Scanner in = new Scanner(System.in);        String A = in.nextLine();        test.getResult(A);    }}

 

 

 

演算法筆記_156:演算法提高 6-17複數四則運算(Java)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.