济南网站哪家做的好,简约网站建设,开发者应用,西安专业做网站的的公司题目描述
小明喜欢做ab的算术#xff0c;但是他经常忘记把末位对齐#xff0c;再进行加#xff0c;所以#xff0c;经常会算错。 比如1213#xff0c;他把12左移了1位#xff0c;结果变成了133。 小明已经算了一些等式#xff0c;请计算一下他到底移动了多少位。
输入…题目描述
小明喜欢做ab的算术但是他经常忘记把末位对齐再进行加所以经常会算错。 比如1213他把12左移了1位结果变成了133。 小明已经算了一些等式请计算一下他到底移动了多少位。
输入
第一行是一个整数K表示样例的个数。 以后每行一个样例形如abc, 1≤a,b≤1e4;0≤c≤1e9。
输出
每行输出一个样例的结果以b为标准a如果往左移n位输出n如果往右移n位输出-n。 测试数据保证一定有解如果存在多个解输出左移的结果。
样例输入
6
12131213
12131312
121325
121312013
1213133
1213142
样例输出
2
-2
0
3
1
-1
AC代码
#includestdio.h
int main(){int T;scanf(%d,T);while(T--){int a,b,c;scanf(%d%d%d,a,b,c);int tc,k0;while(t!0){//c的位数 t/10;k;}if(abc)printf(0\n);else{int i,cnt0,a1a%10,b1b%10,c1c%10;if(c1a1c1!b1){//右移 for(i0;ik;i){b*10;cnt;if(abc)break;}printf(%d\n,-cnt);}else if(c1b1c1!a1){//左移 for(i0;ik;i){a*10;cnt;if(abc)break;}printf(%d\n,cnt);}else{int flag0;int t1a;for(i0;ik;i){t1*10;cnt;if(t1bc){printf(%d\n,cnt);flag1; break;}}if(flag0){cnt0;for(i0;ik;i){b*10;cnt;if(abc){printf(%d\n,-cnt);break;}}}}}}
}
解题思路分三种情况讨论
1、c的尾数等于a的尾数
2、c的尾数等于b的尾数
3、c的尾数等于ab的尾数
注意考虑a,b,c运算中的变化情况。