共计 2567 个字符,预计需要花费 7 分钟才能阅读完成。
简略计算器
读入一个只蕴含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
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 就是这样的数,因为 2 2=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;
//}
正文完