赞
踩
定义一个数的逆如下:两个数互为逆,当且仅当它们的绝对值位数相同且各位对应数字之和为 9。例如:11 和 −88 互为逆,999 和 000 互为逆,但 999 和 0 不互为逆。
现在给出多组数对,请编程判断每对数是否互为逆。如果是,请输出它们的和;如果不是,请输出“illegal operation”
。
参考之前的关卡。
根据提示,在右侧编辑器的Begin-End区域内补充代码。
输入:第一行为数据组数 T,T∈[1,100]
;接下来 T 行,每行 2 个数 a 和 b (∣a∣,∣b∣∈[0,10100]
),以一个空格分隔。a,b 可能有前导 0 ,仅负数带符号。
输出:对于每组数据,如果 a 和 b 互为逆,输出它们的和 (无前导 0,仅负数有符号);否则输出“illegal operation”
。
例如测试集 1 的输入是: 5
01 98
-100 899
233 332
00000000000001 -99999999999998
-45454 54545
测试集 1 的运行结果为: 99
799
illegal operation
-99999999999997
9091
- #include <stdio.h>
- #include <string.h>
- char result[1000];
- char *sub(char *a, char *b)
- {
- int c=0,n;
- while(*(a+c)!='\0')
- c++;
- c--;
- n=c;
- for(;c>=0;c--)
- {
- if(*(a+c)-*(b+c)>=0)
- {
- result[c]=*(a+c)-*(b+c)+'0';
- }
- else if(*(a+c)-*(b+c)<0)
- {
- *(a+c-1)=*(a+c-1)-'1'+'0';
- result[c]=*(a+c)-*(b+c)+'9'-'0'+'1';
- }
- }
- while(result[0]=='0')
- {
- for(c=0;c<=n;c++)
- result[c]=result[c+1];
- result[n]='\0';
- n--;
- }
- return(result);
- }
- int main()
- {
- char sa[1000], sb[1000];
- char *a, *b;
- int signa, signb;
- int i, t, la, lb;
- scanf("%d", &t);
- while (t--)
- {
- scanf("%s%s", sa, sb);
- a = (sa[0] == '-') ? sa + 1 : sa;
- b = (sb[0] == '-') ? sb + 1 : sb;
- signa = (sa[0] == '-') ? 1 : 0;
- signb = (sb[0] == '-') ? 1 : 0;
- la = strlen(a);
- lb = strlen(b);
- if (la != lb)
- printf("illegal operation\n");
- else
- {
- int flag = 1;
- for (i = 0; i < la; i++)
- {
- if (a[i] + b[i] - '0' - '0' != 9)
- {
- printf("illegal operation\n");
- flag = 0;
- break;
- }
- }
- if (flag == 0)
- {
- continue;
- }
- if (signa == 1 && signb == 1)
- {
- printf("-");
- for (i = 0; i < la; i++)
- printf("9");
- printf("\n");
- }
- else if (signa == 0 && signb == 0)
- {
- for (i = 0; i < la; i++)
- printf("9");
- printf("\n");
- }
- else if (signa == 0 && signb == 1)
- {
- if (strcmp(a, b) >= 0)
- printf("%s\n", sub(a, b));
- else
- printf("-%s\n", sub(b, a));
- }
- else
- {
- if (strcmp(b, a) >= 0)
- printf("%s\n", sub(b, a));
- else
- printf("-%s\n", sub(a, b));
- }
- }
- }
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。