简单计算器

3589
描述
计算机是用于计算的机器,计算的前提是需要人编写计算机程序。编写程序的人称为程序员,程序是代码、文档和数据的总称,目前市面上使用的计算器之所以能够使用,是在计算器内拷入了程序。给你的问题是,请你编写一个程序实现最简单的算术运算器,需要计算的数据从标准输入,在输入中给出你要进行的运算符号和参与运算的数据,考虑使问题简化,你要进行的都是二元运算,运算符使用字母A,B,C,D,E分别表示通常意义下的+(加法)、-(减法)、*(乘法)、/(除法)及乘方运算。数采用二进制描述,如101A100表示十进制的5+4,输出结果使用十进制输出,结果应该为9。


输入
输入文件中包含多个计算表达式,输入的第一行为表达式的个数n,接下来的n行为的每一行为一个表达式,统一格式为一个运算符连接的两个二进制的正整数。




输出
每一个表达式的计算结果以十进制表示,并依次使用一行输出,如果是除法,结果保留两位小数。




样例输入
#include<iostream>
#include<cmath>
using namespace std;

int two(int n)
{
	int a[256],i,t=0;
	double s=0;
	for(i=0;n>0;i++)
	{
		a[i]=n%10;
		n=n/10;
	}
	t=i;
	for(i=0;i<t;i++)
	{
		s+=(a[i]*pow(2.0,i));
	}
	return int(s);
}

void work(int a,char b,int c)
{
	if (b=='A') cout<<a+c<<endl;
	else if(b=='B')  cout<<a-c<<endl;
	else if(b=='C')  cout<<a*c<<endl;
	else if(b=='D')  printf("%.2f\n",double(a)/c);
	else if(b=='E')  cout<<pow(double(a),c)<<endl;
}

int main()
{
	int n,i;char b;
	int a,c;
	cin>>n;
	for(i=0;i<n;i++){
		scanf("%d%c%d",&a,&b,&c);
		a=two(a);
		c=two(c);
		work(a,b,c);
	}
	return 0;
}


4
101A100
1111D111
1111C11
11111D101101


样例输出
9
2.14
45

0.69



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值