zoukankan      html  css  js  c++  java
  • 算法提高 复数归一化

    算法提高 复数归一化  
    时间限制:1.0s   内存限制:512.0MB
        
    编写函数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
    #include <iostream>
    #include <cstdio>
    #include <vector>
    #include <queue>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <cstdlib>
    #define for(i,x,n) for(int i=x;i<n;i++)
    #define for2(i,x,n) for(int i=x-1;i>=n;i--)
    #define ll long long int
    #define INF 0x3f3f3f3f
    #define MOD 1000000007
    #define MAX_N 50005
    
    using namespace std;
    
    struct plural{
        double a,b;
    };
    
    int main()
    {
        //freopen("data.txt", "r", stdin);
        //freopen("data.out", "w", stdout);
        plural p1;
        double t1,t2;
        scanf("%lf %lf",&t1,&t2);
        p1.a=t1/sqrt(t1*t1+t2*t2);
        p1.b=t2/sqrt(t1*t1+t2*t2);
        if(p1.a!=0&&p1.b>0){
            printf("%.1g+%.1gi",p1.a,p1.b);
        }else if(p1.a!=0&&p1.b<0){
            printf("%.1g%.1gi",p1.a,p1.b);
        }else if(p1.a!=0&&p1.b==0){
            printf("%.1g",p1.a);
        }else if(p1.a==0&&p1.b==0){
            printf("0");
        }else if(p1.a==0&&p1.b!=0){
            printf("%.1gi",p1.b);
        }
    
    
        //fclose(stdin);
        //fclose(stdout);
        return 0;
    }
  • 相关阅读:
    UnityShader
    Unity
    Tools
    linux下解压命令
    进程 同步、互斥
    I/O模型
    jclass jobject
    javah javap
    IDA 结构体
    Windows CSRSS API List (NT/2000/XP/2003/Vista/2008/7/2012/8)
  • 原文地址:https://www.cnblogs.com/TWS-YIFEI/p/6389293.html
Copyright © 2011-2022 走看看