Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Author: 曹北健(37509)
- Result: AC Submission_id: 5279941
- Created at: Sun Mar 26 2023 10:10:23 GMT+0800 (China Standard Time)
- Problem: 6714 Time: 4 Memory: 2096
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <ctype.h>
- #include <string.h>
- #include <time.h>
- #pragma warning(disable:4996)
- int equal_f64(double x, double y){
- return fabs(x - y) < 1e-8;
- }
- int isint(double x){
- return (fabs(round(x) - x)) < 1e-8;
- }
- int main(){
- double a1, b1, a2, b2, e1, e2;
- char input[256] = { 0 },op;
- while(fgets(input, 255, stdin)){
- sscanf(input, "(%lf%lfi)%c(%lf%lfi)", &a1, &b1, &op, &a2, &b2);
- switch(op){
- case '+':
- e1 = a1 + a2;
- e2 = b1 + b2;
- break;
- case '-':
- e1 = a1 - a2;
- e2 = b1 - b2;
- break;
- case '*':
- e1 = a1 * a2 - b1 * b2;
- e2 = a1 * b2 + a2 * b1;
- break;
- case '/':
- e1 = (a1 * a2 + b1 * b2) / (a2 * a2 + b2 * b2);
- e2 = (b1 * a2 - a1 * b2) / (a2 * a2 + b2 * b2);
- default:
- break;
- }
- if(equal_f64(e1, 0.) && equal_f64(e2, 0.)){
- puts("0");
- }
- else if(equal_f64(e1, 0.)){//imag
- if(equal_f64(e2, 1.)){
- puts("i");
- }
- else if(equal_f64(e2, -1.)){
- puts("-i");
- }
- else if(isint(e2)){
- printf("%.0fi\n", e2);
- }
- else{
- printf("%.2fi\n", e2);
- }
- }
- else if(equal_f64(e2,0.)){//nonzero real
- if(isint(e1)){
- printf("%.0f\n", e1);
- }
- else{
- printf("%.2f\n", e1);
- }
- }
- else{//complex
- if(isint(e1)){
- printf("%.0f", e1);
- }
- else{
- printf("%.2f", e1);
- }
- if(equal_f64(e2, 1.)){
- puts("+i");
- }
- else if(equal_f64(e2, -1.)){
- puts("-i");
- }
- else if(isint(e2)){
- printf("%+.0fi\n", e2);
- }
- else{
- printf("%+.2fi\n", e2);
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement