PAT乙级 1016 部分A+B

简介: PAT乙级 1016 部分A+B

题目很简单,但是我做的感觉有点啰嗦。


正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA。

例如:给定 A=3862767,DA=6,则 A 的“6 部分”PA 是 66,因为 A 中有 2 个 6。

现给定 A、DA、B、DB,请编写程序计算 PA+PB。

话说,这些题目描述些绕口,建议看他给的例子。

 

 

//1016部分A+B
#include<iostream>
using namespace std;
//传入A,DA,cDA,得到A中DA出现的次数存到cDA中
void countc(int A, int Da, int & cDa);
//传入DA,cDA,返回PA的值
int calcuP(int Da, int cDa);
int main()
{
  int A, DA, B, DB;
  int cDA = 0, cDB = 0;
  cin >> A >> DA >> B >> DB;
  int PA = 0, PB = 0;
  countc(A, DA, cDA);
  countc(B, DB, cDB);
  PA = calcuP(DA, cDA);
  PB = calcuP(DB, cDB);
  cout << PA + PB;
  return 0;
}
 
void countc(int A, int Da, int & cDa)
{
  while (A != 0) {
    int tm = A % 10;
    if (tm == Da) {
      cDa++;
    }
    A /= 10;
  }
}
 
int calcuP(int Da, int cDa) {
  if (Da == 0 || cDa == 0)
    return 0;
  int P = 0;
  for (int i = 0; i < cDa; i++) {
    P += Da;
    Da *= 10;
  }
  return P;
}
相关文章
|
5月前
|
测试技术
PAT(乙级) 1005 继续(3n+1)猜想 (25)
PAT(乙级) 1005 继续(3n+1)猜想 (25)
|
11月前
|
数据安全/隐私保护
如来十三掌(与佛论禅、Rot13编码)
如来十三掌(与佛论禅、Rot13编码)
133 0
|
存储 C++
【PAT甲级 - C++题解】1056 Mice and Rice
【PAT甲级 - C++题解】1056 Mice and Rice
67 0
|
测试技术 C语言 C++
PTA团体程序设计天梯赛-练习集:L1-003 个位数统计
给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。 输出格式: 对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。
211 0
PAT-2021年秋季考试 乙级 7-5 取帽子 (25 分)
拼题er们觉得戴帽子会令自己看上去很帅,所以他们不管到哪里都会戴着帽子。
131 0
|
测试技术 C语言
PAT乙级(简单模拟)1001、1011、1016、1026、1046、1012、1018(二)
PAT乙级(简单模拟)1001、1011、1016、1026、1046、1012、1018
137 0
PAT乙级(简单模拟)1001、1011、1016、1026、1046、1012、1018(二)
PAT-2021年秋季考试 乙级 7-1 好数 (15 分)
好数是指由一对正整数 a<b 按照 a 2 +ab+b 2 这个规则生成的数,a 和 b 就称为这个好数的源头。
114 0
PAT-2021年秋季考试 乙级 7-2 数以类聚 (20 分)
我们把所有各位数字的乘积相同的数归为一类。例如 1362 和 2332 就是同一类,因为 1×3×6×2=2×3×3×2。给定 N 个正整数,请你判断它们可以被归成多少不同的类?
127 0
|
存储 缓存 算法
蓝桥每日一点题,国赛场上ta和你
蓝桥每日一点题,国赛场上ta和你
71 0
蓝桥每日一点题,国赛场上ta和你