3589
描述
计算机是用于计算的机器,计算的前提是需要人编写计算机程序。编写程序的人称为程序员,程序是代码、文档和数据的总称,目前市面上使用的计算器之所以能够使用,是在计算器内拷入了程序。给你的问题是,请你编写一个程序实现最简单的算术运算器,需要计算的数据从标准输入,在输入中给出你要进行的运算符号和参与运算的数据,考虑使问题简化,你要进行的都是二元运算,运算符使用字母A,B,C,D,E分别表示通常意义下的+(加法)、-(减法)、*(乘法)、/(除法)及乘方运算。数采用二进制描述,如101A100表示十进制的5+4,输出结果使用十进制输出,结果应该为9。
输入
输入文件中包含多个计算表达式,输入的第一行为表达式的个数n,接下来的n行为的每一行为一个表达式,统一格式为一个运算符连接的两个二进制的正整数。
输出
每一个表达式的计算结果以十进制表示,并依次使用一行输出,如果是除法,结果保留两位小数。
样例输入
4
101A100
1111D111
1111C11
11111D101101
样例输出
9
2.14
45
描述
计算机是用于计算的机器,计算的前提是需要人编写计算机程序。编写程序的人称为程序员,程序是代码、文档和数据的总称,目前市面上使用的计算器之所以能够使用,是在计算器内拷入了程序。给你的问题是,请你编写一个程序实现最简单的算术运算器,需要计算的数据从标准输入,在输入中给出你要进行的运算符号和参与运算的数据,考虑使问题简化,你要进行的都是二元运算,运算符使用字母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