蓝色的包装材料企业网站模板,nonce验证 wordpress,nodejs和wordpress,电子商务网站的建设开发工具题目#xff1a;洛谷P1957口算练习题
题目大意描述#xff1a;
第一行输入一个整数表示接下来要进行多少次运算#xff0c;接下来每行输入一个字母c和两个数字x,y#xff08;输入的字母为a/b/c,分别表示要进行#xff0c;-#xff0c;*运算#xff09;或者就输入两个数…题目洛谷P1957口算练习题
题目大意描述
第一行输入一个整数表示接下来要进行多少次运算接下来每行输入一个字母c和两个数字x,y输入的字母为a/b/c,分别表示要进行-*运算或者就输入两个数字x,y表示这次运算方式和上次相同。输出计算式和这个计算式有多少个字符。
输入输出样例 输入
4
a 64 46
275 125
c 11 99
b 46 64 输出 6446110
9
275125400
11
11*991089
10
46-64-18
9 作者思路
到底该怎么判断要输入两个数字还是输入一个字母和两是个数字呢本蒟蒻的思路先输入要输入的第一个字母或数字我就定义一个字符串变量s然后判断s[0]是否等于a/b/c,如果是的话再输入x,y如果不是的话就把刚刚输入的字符串转换为整数类型然后赋值给x然后再输入y所以我就写了一个字符转数字的函数然后又写了一个判断数字是几位数的函数。
代码如下
#includebits/stdc.h
using namespace std;
int len(int x){int y;if(x0) return 1;if(x0) y-x;else yx;int l(int)log10(y)1;if(x0) return l1;else return l;
}
int trs(string s){int s10,a,l;for(int i0;is.size();i){a(int)s[i]-48;ls.size()-1-i;while(l--){a*10;}s1a;}return s1;
}
int main(){int n;cinn;string s;char t;int x,y,z,l1,l2,l3,l;while(n--){cins;if(s[0]ds[0]a){ts[0];cinxy;it:l1len(x);l2len(y);if(ta){zxy;l3len(z);ll1l2l32;printf(%d%d%d\n%d\n,x,y,z,l);}if(tb){zx-y;l3len(z);ll1l2l32;printf(%d-%d%d\n%d\n,x,y,z,l);}if(tc){zx*y;l3len(z);ll1l2l32;printf(%d*%d%d\n%d\n,x,y,z,l);}}else{xtrs(s);ciny;goto it;}}
}