1016 部分A+B(C语言版 + 注释 + 模拟)

正整数 A 的“D​A​​(为 1 位整数)部分”定义为由 A 中所有 D​A​​ 组成的新整数 P​A​​。例如:给定 A=3862767,D​A​​=6,则 A 的“6 部分”P​A​​ 是 66,因为 A 中有 2 个 6。

现给定 A、D​A​​、B、D​B​​,请编写程序计算 P​A​​+P​B​​。

输入格式:

输入在一行中依次给出 A、D​A​​、B、D​B​​,中间以空格分隔,其中 0<A,B<10​10​​。

输出格式:

在一行中输出 P​A​​+P​B​​ 的值。

输入样例 1:

3862767 6 13530293 3

输出样例 1:

399

输入样例 2:

3862767 1 13530293 8

输出样例 2:

0

关键之处:

  • pa 跟 pb代码重复很多,因此归纳为一个函数看起来比较简洁。

代码:

#include <stdio.h>

int main(void) {
	int A, da, B, db, pa, pb;
	
	scanf("%d %d %d %d", &A, &da, &B, &db);
	pa = pp( A, da );
	pb = pp( B, db );
	printf("%d", pa + pb);
	
	return 0;
}
/*返回新整数的函数*/
int pp( int A, int da ) {
	int digit, pa = 0;
	
	while ( A ) {
		digit = A % 10;    //获取余数。
		if ( digit == da )	pa = digit + 10 * pa;    //每新增一位原来的数升10倍。
		A /= 10;    //砍掉个位上的数。
	}
	
	return pa;
}

猜你喜欢

转载自blog.csdn.net/YelloJesse/article/details/82378586