2013华为编程大赛成都第三组 求复数的平均值
来源:互联网 发布:淘宝卖话费怎么弄 编辑:程序博客网 时间:2024/05/04 18:04
题目 B: 求复数的平均值
时间限制: 10 Sec 内存限制: 128 MB 提交: 59 解决: 13
[提交][状态][讨论版]
题目描述 由实部和虚部组成,形如(a,bi)这样的数,称为复数。
通信系统中,通常用32bit数来表示复数(高16bit表示实部,低16bit表示虚部),如整数524295(16进制为0x00080007)
所代表的复数,实部为0x0008,虚部为0x0007。 有别于实数运算,复数加、减、乘、除运算定义如下:
复数加公式:(a,bi) + (c,di) = (a + c),(b + d)i 复数减公式:(a,bi) + (c,di) = (a - c),(b - d)i
复数乘公式:(a,bi) * (c,di) = (ac - bd),(ad + bc)i 复数除公式:(a,bi) / N = (a/N),(b/N)i
题目要求,输入N个复数,计算这个N个复数的平均值,
复数Avg = (复数1*复数2 + 复数3*复数4 + … + 复数N-1*复数N) / N。
复数加、复数减、复数乘、复数除的结果仍然为复数,实部和虚部均为16bit有符号数,
计算过程中,当结果大于32767(0x7fff)时,输出32767;当计算结果小于-32768(0x8000)时,输出-32768。
输入 输入共计两行 有别于实数运算,复数加减乘除运算定义如下第一行包含1个整数,表示输入复数个数N(N为偶数,N不大于1000) 第一行包含1个整数,
表示输入复数个数N(N为偶数,N不大于1000) 输出 经计算得到的复数的平均值。
样例输入 4 262149,393223,524297,655371
时间限制: 10 Sec 内存限制: 128 MB 提交: 59 解决: 13
[提交][状态][讨论版]
题目描述 由实部和虚部组成,形如(a,bi)这样的数,称为复数。
通信系统中,通常用32bit数来表示复数(高16bit表示实部,低16bit表示虚部),如整数524295(16进制为0x00080007)
所代表的复数,实部为0x0008,虚部为0x0007。 有别于实数运算,复数加、减、乘、除运算定义如下:
复数加公式:(a,bi) + (c,di) = (a + c),(b + d)i 复数减公式:(a,bi) + (c,di) = (a - c),(b - d)i
复数乘公式:(a,bi) * (c,di) = (ac - bd),(ad + bc)i 复数除公式:(a,bi) / N = (a/N),(b/N)i
题目要求,输入N个复数,计算这个N个复数的平均值,
复数Avg = (复数1*复数2 + 复数3*复数4 + … + 复数N-1*复数N) / N。
复数加、复数减、复数乘、复数除的结果仍然为复数,实部和虚部均为16bit有符号数,
计算过程中,当结果大于32767(0x7fff)时,输出32767;当计算结果小于-32768(0x8000)时,输出-32768。
输入 输入共计两行 有别于实数运算,复数加减乘除运算定义如下第一行包含1个整数,表示输入复数个数N(N为偶数,N不大于1000) 第一行包含1个整数,
表示输入复数个数N(N为偶数,N不大于1000) 输出 经计算得到的复数的平均值。
样例输入 4 262149,393223,524297,655371
样例输出 -458693
面向对象:
#include <iostream>#include <cstdlib>#include <bitset>#include <algorithm>#include <vector> const int maxn=32767;const int minn=-32768;using namespace std;class Comp{private:int real;int ima;public:Comp(int r,int i){real=r;ima=i;}Comp(){real=0;ima=0;}void set_real(int r){if(r>maxn) r=maxn;else if(r<minn) r=minn;real=r;}void set_ima(int m){if(m>maxn) m=maxn;else if(m<minn) m=minn;ima=m;}int get_real(){return real;}int get_ima(){return ima;}long long get_value(){long long k;k=real<<16;k+=ima;return k;}};int main(){int N;vector<Comp> buf;cin>>N;for(int i=1;i<=N;i++){long long tmp;cin>>tmp;int r,im;im=tmp & 65535;r=tmp>>16;Comp aa(r,im);buf.push_back(aa); }Comp sum;for(int i=0;i<buf.size()-1;i+=2){Comp tmp1=buf[i];Comp tmp2=buf[i+1];long long r,im;r=tmp1.get_real()*tmp2.get_real()-tmp1.get_ima()*tmp2.get_ima();im=tmp1.get_real()*tmp2.get_ima()+tmp1.get_ima()*tmp2.get_real();sum.set_real(sum.get_real()+r);sum.set_ima(sum.get_ima()+im);}sum.set_real(sum.get_real()/N);sum.set_ima(sum.get_ima()/N);cout<<sum.get_value()<<endl;}
- 2013华为编程大赛成都第三组 求复数的平均值
- 2013华为编程大赛成都第三组 求复数的平均值
- 2013华为杯编程大赛成都第三组试题及答案
- 2013华为杯编程大赛成都第三组试题--------题目 A: 路灯统计
- 求复数的平均值
- 2013华为杯编程大赛成都第三组试题--------C 连连看-判断两个图案是否可以消去
- 2012 华为编程大赛 成都地区
- 华为编程 复数求均值
- 2013华为第五届编程大赛 成都初赛题目和解答
- 华为编程大赛——求表达式的值
- 华为机试题:求偶数个复数的平均值
- 2012华为编程大赛第三题
- 2011华为编程大赛第三道题
- 华为的编程大赛题
- 华为编程大赛资格赛第4轮题目,求n个数的最大公约数
- 2011华为编程大赛初赛成都赛区试题(c语言b卷)
- 2012第四届华为编程大赛(高级组)第三题
- 第三届华为编程大赛【C语言试题】
- http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=301 (矩阵的用法)
- Linux嵌入式 -- 内核 - 内存管理
- C++标准库vector类(简单用法记录)
- stl hashmap与map hashmap与hashtable
- C语言猴子算法(BOGO)
- 2013华为编程大赛成都第三组 求复数的平均值
- 用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现
- C语言文件操作
- C++标准库bitset类型(简单使用方法)
- 浅谈SQL SERVER中事务的ACID
- mysql 数据库存储需要考虑的问题
- S3C2440裸机开发实例【转】
- 技术人员如何创业
- C++关于数组与指针一些值得注意的笔记