部分A+B求和编程练习

mac2025-12-25  6

牛客网–在线编程练习 题目:正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。 现给定A、DA、B、DB,请编写程序计算PA + PB。 例子: 输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。 在一行中输出PA + PB的值。 输入例子:3862767 6 13530293 3 输出例子:399 start time 2019.11.01 20.31 end time 20.57(满足) 1级

#include<iostream> using namespace std; int D(long A,int DA) //定义函数方法D计算A(或B)中DA(DB)的个数k { int m, k = 0; //m为每次循环时A的个位 while (A > 10) { m = A % 10; A = A / 10; if (m == DA) k++; } if (A == DA) k++; return k; } int P(int DA, int k) //定义函数方法P计算PA(和PB) { int PA; if (k == 0) PA = 0; else { PA = DA; while (k > 1) { PA = PA * 10 + DA; k--; } } return PA; } int main() { long A, B; //其中0 < A, B < 10^10 int DA,DB,PA,PB; cin >> A >> DA >> B >> DB; PA = P(DA, D(A, DA)); //两次函数调用合为一个语句 PB = P(DB, D(B, DB)); //同上 cout << PA + PB; return 0; }
最新回复(0)