题目很简单,但是我做的感觉有点啰嗦。
正整数 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; }