简略计算器
读入一个只蕴含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
Input
测试输出蕴含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输出完结,相应的后果不要输入。
Output
对每个测试用例输入1行,即该表达式的值,准确到小数点后2位。
Sample Input
1 + 2
4 + 2 * 5 - 7 / 11
0
Sample Output
3.00
13.36
//#include<iostream>//#include<algorithm>//#include<string>//#include<string.h>//#include<cstdio>//#include<queue>//#include<stack> //#include<set> //#include<vector> //using namespace std;//int main(){// double num;// stack<double> st;// while(cin >> num){// char ch;// ch = getchar();//吃掉第一个数前面空格// if(ch != ' ' && num == 0){//如果第一个数前面什么都没有,空格也没有,证实只有1 个零完结循环 // break; // }// st.push(num);// double n;// char c,s;// while(scanf("%c %lf%c",&c,&n,&s) != EOF){//把第一个数前面四位(空格也算)当做一个整体,一直循环输出 // if(c == '+'){// st.push(n);// }else if(c == '-'){// st.push(-1*n);//把负号与数一起入栈,这样就都为正,前面要计算栈外面的值只用相加就行 // }else if(c == '*'){// st.top() *= n;//将栈顶元素与以后输出的值相乘,而后作为新的栈顶元素 // }else if(c == '/'){// st.top() /= n;// } // if(s != ' '){//如果最初一位不是空格(空或换行符'\n'),阐明数据输出实现,完结循环 // break;// }// }// double sum;// sum = 0.00;// while(!st.empty()){// sum += st.top();//将栈中各个元素从栈顶开始相加并出栈// st.pop(); // }// printf("%.2f\n",sum);// }// return 0;//}
A + B
读入两个小于100的正整数A和B,计算A+B.
须要留神的是:A和B的每一位数字由对应的英文单词给出.
输出
测试输出蕴含若干测试用例,每个测试用例占一行,格局为"A + B =",相邻两字符串有一个空格距离.当A和B同时为0时输出完结,相应的后果不要输入.
输入
对每个测试用例输入1行,即A+B的值.
样例输出 Copy
one + two =
three four + five six =
zero seven + eight nine =
zero + zero =
样例输入 Copy
3
90
96
//#include<iostream>//#include<algorithm>//#include<string>//#include<string.h>//#include<cstdio>//#include<queue>//#include<stack> //#include<set>//#include<map> //#include<vector> //using namespace std;//int main(){// map<string,int>num;// num["one"] = 1;// num["two"] = 2;// num["three"] = 3;// num["four"] = 4;// num["five"] = 5;// num["six"] = 6;// num["seven"] = 7;// num["eight"] = 8;// num["nine"] = 9;// num["zero"] = 0;// string s;// while(cin >> s){// int a = 0;// int b = 0;// while(s != "+"){//当+号后面多个字符时,先进行计算 // a = a * 10 + num[s];// cin >> s;// }// while(s != "="){//当=号后面多个字符时,先进行计算 // b = b * 10 + num[s];// cin >> s; // }// if(a == 0 && b == 0){// break;// }// cout << a + b << endl;// }// return 0;//}
对称平方数1
打印所有不超过256,其平方具备对称性质的数。如2,11就是这样的数,因为22=4,1111=121。
输出
无任何输出数据
输入
输入具备题目要求的性质的数。如果输入数据不止一组,各组数据之间以回车隔开。
//#include<iostream>//#include<algorithm>//#include<string>//#include<string.h>//#include<cstdio>//#include<queue>//#include<stack> //#include<set>//#include<map> //#include<vector> //using namespace std;//int main(){// for(int i = 0; i < 256; i++){// int num,t = 0;//t是数组下标 // int temp[20];//用来存组成num这个数的各个数字的数组 // num = i * i;//求得这个数 // while(num){//循环求组成num的 个十百千位上的各个数字存在数组中 // temp[t++] = num % 10;// num /= 10;// } // int flag = 1;// for(int j = 0; j < t/2; j++){//判断temp数组是否对称,判断一半就够了 // if(temp[j] != temp[t - 1 - j]){//从0开始,故最初一位为t - 1// flag = 0;//对称地位两个数不相等,则置flag为0 // break;// } // }// if(flag == 1){// cout << i << endl;// } // }// return 0;//}