首页 > 试题广场 >

复数

[编程题]复数
  • 热度指数:4540 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
编写一个复数类,有构造函数,能对复数初始化重载加法操作符并按a+bi 的形式输出。

输入描述:
输入第一行表示测试用例的个数m,接下来m行每行有4个用空格隔开的整数,分别表示2个复数的实部和虚部。


输出描述:
输出m行。按a+bi或者a-bi的格式输出,表示两个复数相加的和。
示例1

输入

1
3 4 1 -2

输出

4+2i

备注:
注意虚部为负数时的输出。
Java 解法
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        for (int i = 0; i < n; i++) {
            int ar = getNum(scanner.next());
            int ai = getNum(scanner.next());
            int br = getNum(scanner.next());
            int bi = getNum(scanner.next());
            int sumi = ai+bi;
            int sumr = ar+br;
            System.out.println(sumi>=0?sumr+"+"+sumi+"i":sumr+""+sumi+"i");
        }
    }

    public static int getNum(String s){
        return s.startsWith("-")?-Integer.parseInt(s.substring(1)):Integer.parseInt(s);
    }
}


发表于 2020-03-17 11:01:26 回复(0)
import java.util.Scanner;
public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int N=sc.nextInt();
            for (int i = 0; i < N; i++) {
                int a=sc.nextInt();
                int b=sc.nextInt();
                int c=sc.nextInt();
                int d=sc.nextInt();
                fushu f1=new fushu(a,b);
                fushu f2=new fushu(c,d);
                String s=fushu.complex(f1,f2);
                System.out.println(s);
            }
        }
}
class fushu{
    int shubu;
    int xubu;
    String op;
    public fushu(int i, int j) {
        if (j>0) {
            this.setOp("+");
         }
         if (j<0) {
             this.setOp("-");
         }
         this.setShubu(i);
        this.setXubu(j);
    }
    public static String complex(fushu f1,fushu f2){
         StringBuffer sb=new StringBuffer();
         sb.append(f1.shubu+f2.shubu);
         if (f1.xubu+f2.xubu>0) {
            sb.append("+").append(f1.xubu+f2.xubu).append("i");
         }else {
            sb.append(f1.xubu+f2.xubu).append("i");
        }
         return sb.toString();
    }
    public int getShubu() {
        return shubu;
    }
    public void setShubu(int shubu) {
        this.shubu = shubu;
    }
    public int getXubu() {
        return xubu;
    }
    public void setXubu(int xubu) {
        this.xubu = xubu;
    }
    public String getOp() {
        return op;
    }
    public void setOp(String op) {
        this.op = op;
    }
}     
发表于 2019-11-06 12:38:39 回复(0)
import java.util.Scanner;
public class Complex {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int a = input.nextInt();  //表示有几行
        for (int i = 0; i < a; i ++){
            int[] b = new int[4];
            for (int j = 0; j < 4; j ++){
                b[j] = input.nextInt();
            }
            System.out.println(complex(b));
        }
    }

    private static String complex(int[] b) {
        int a = b[0] + b[2];
        int c = b[1] + b[3];
        StringBuffer result = new StringBuffer();
        if (c > 0){
            result.append(a);
            result.append("+");
            result.append(c);
            result.append("i");
            return result.toString();
        }else if (c < 0){
            result.append(a);
            result.append(c);
            result.append("i");
            return result.toString();
        }else{
            result.append(a);
            return result.toString();
        }
    }
}

发表于 2019-03-12 10:03:10 回复(1)

问题信息

上传者:小小
难度:
4条回答 3418浏览

热门推荐

通过挑战的用户

查看代码
复数