zoukankan      html  css  js  c++  java
  • [PAT乙级] Practise 1016 部分A+B

    PAT (Basic Level) Practice (中文)1016

    1016 部分A+B

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

    现给定 AD**ABD**B,请编写程序计算 P**A+P**B

    输入格式:

    输入在一行中依次给出 AD**ABD**B,中间以空格分隔,其中 0<A,B<1010。

    输出格式:

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

    输入样例 1:

    3862767 6 13530293 3
    

    输出样例 1:

    399
    

    输入样例 2:

    3862767 1 13530293 8
    

    输出样例 2:

    0
    

    思路:

    根据题意计算串中的重复数字并根据Da Db构造新的字符串即可。

    代码:

    #include <iostream>
    #include <string>
    using namespace std;
    int inWath(string s,char k) {
    	int n = 0;
    	for (int i = 0; i < s.size(); i++) {
    		if (s[i] == k)
    			n++;
    	}
    	return n;
    }
    int main() {
    	string a, b;
    	char   Da,Db;
    	string Pa,Pb;
    	cin >> a >> Da >> b >> Db;
    	if (inWath(a, Da) != 0 && inWath(b, Db) != 0)
    		cout << stoi(Pa.insert(0, inWath(a, Da), Da)) + stoi(Pb.insert(0, inWath(b, Db), Db));
    	else
    		cout << "0";
    	return 0;
    }
    
  • 相关阅读:
    设计模式的原则
    命令模式
    访问者模式
    策略模式
    外观模式
    组合模式
    原型模式
    合并有序数组
    判断二叉树是否对称
    中序遍历二叉树
  • 原文地址:https://www.cnblogs.com/eisuto/p/12509127.html
Copyright © 2011-2022 走看看