【CodeForces】[75A]Life Without Zeros

文章字数:351

问题描述

问题分析

题意:
正常运算的话101+102=203
当去除式子中所有的0时变为
11+12=23
发现等式仍然成立
而105+106=211去除所有0变为
15+16=211很显然不成立
所以给出两个数字
判断它们相加的式子去除所有0后是否成立

解题过程:
因为题目表示去除所有的0
那么可以通过

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Int tc=0;
	while(c) {
		if(c%10)
			tc*=10;
		tc+=c%10;
		c/=10;
	}
c=0;
	while(tc) {
		c=c*10+tc%10;
		tc/=10;
	}

来去除数字c中的0
最后判断去除0后的两个数相加
是否等于相加后去除0即可

另外需要注意数据范围
int有可能会溢出

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<stdio.h>
int main() {
	__int64 a,b;
	while(scanf("%I64d",&a)!=EOF) {
		scanf("%I64d",&b);
		__int64 c=a+b;
		__int64 tc=0;
		while(c) {
			if(c%10)
				tc*=10;
			tc+=c%10;
			c/=10;
		}
		c=0;
		while(tc) {
			c=c*10+tc%10;
			tc/=10;
		}
		__int64 ta=0;
		while(a) {
			if(a%10)
				ta*=10;
			ta+=a%10;
			a/=10;
		}
		a=0;
		while(ta) {
			a=a*10+ta%10;
			ta/=10;
		}
		__int64 tb=0;
		while(b) {
			if(b%10)
				tb*=10;
			tb+=b%10;
			b/=10;
		}
		b=0;
		while(tb) {
			b=b*10+tb%10;
			tb/=10;
		}
		printf("%s\n",c==a+b?"YES":"NO");
	}

	return 0;
}

题目地址:【CodeForces】[75A]Life Without Zeros

该内容采用 CC BY-NC-SA 4.0 许可协议。

如果对您有帮助或存在意见建议,欢迎在下方评论交流。

加载中...