B1016部分A+B

正整数 A 的“D?A??(为 1 位整数)部分”定义为由 A 中所有 D?A?? 组成的新整数 P?A??。例如:给定 8,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。

输出格式:

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

输入样例 1:

3862767 6 13530293 3

输出样例 1:

399

输入样例 2:

3862767 1 13530293 8

输出样例 2:

0

思路:

使用两个字符串str1,str2保存PA 和PB,然后利用stio()函数将字符串转化成整数型,相加得到结果。

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 int main() {
 5     string a, b, str1="0", str2="0";//初始化,使得result=0时正确输出
 6     char d1, d2;
 7     cin >> a >> d1 >> b >> d2;
 8     for (unsigned int i = 0; i < a.length(); i++) {
 9         if (a[i] == d1)
10             str1 += d1;
11     }
12     for (unsigned int i = 0; i < b.length(); i++) {
13         if (b[i] == d2)
14             str2 += d2;
15     }
16     int num1 = stoi(str1);
17     int num2 = stoi(str2);
18     int result = num1 + num2;
19     cout << result << endl;
20     return 0;
21 }

原文地址:https://www.cnblogs.com/PennyXia/p/12284445.html

时间: 2024-08-13 21:31:01

B1016部分A+B的相关文章

B1016 部分A+B (15分)

B1016 部分A+B (15分) 输入格式: 输入在一行中依次给出 A.DA.B.DB,中间以空格分隔,其中 \(0<A,B<10^10\). 输出格式: 在一行中输出 PA+PB的值. 输入样例 1: 3862767 6 13530293 3 输出样例 1: 399 输入样例 2: 3862767 1 13530293 8 思路 关键是首先处理出,只含有DA的字符串. 然后将该字符串转化为整数相加. 使用c++的特性 c++11 数值类型和字符串的相互转换 - 农民伯伯-Coding -

B1016 部分A+B

//如何"脱下"A中的每一位?然后与da对比 //怎么把统计的da,整合成一个数? //如果用字符串做呢? #include<stdio.h> int main() { int a,da,b,db; long long pa=0;//易错:题目中所给a,b的范围可以用整型,但相加之后可能超出整型范围 long long pb=0; scanf("%d%d%d%d",&a,&da,&b,&db); while(a!=0) {

【PAT】B1016 部分A+B(15 分)

#include<cstdio> using namespace std; int main(){ char A[20],DA,B[20],DB; int AA=0,BB=0; scanf("%s %c %s %c",A,&DA,B,&DB); char *p=A;int pa=0,pb=0; while(*p!='\0'){ if(*p==DA) pa++; p++; } p=B; while(*p!='\0'){ if(*p==DB) pb++; p++

【PAT】B1016 部分A+B

水题 以字符和字符串形式储存输入,比较,计算出两个个数的D的个数,用for循环拼成P,相加得出结果 #include<stdio.h> int main(){ char A[20],DA,B[20],DB; int AA=0,BB=0; scanf("%s %c %s %c",A,&DA,B,&DB); char *p=A;int pa=0,pb=0; while(*p!='\0'){ if(*p==DA) pa++; p++; } p=B; while(*

PAT B-1016 部分A+B

正整数 A 的“D?A??(为 1 位整数)部分”定义为由 A 中所有 D?A?? 组成的新整数 P?A??.例如:给定 8,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. 输出格式: 在一行中输出 P?A??+P?B?? 的值. 输入样例 1: 3862767 6 1353029

PAT/简单模拟习题集(一)

B1001.害死人不偿命的(3n+1)猜想 (15) Description: 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展-- 我们今天

路由交换协议——RIP

Routing Information Protocol 路由信息协议 距离矢量Distance-Vector 算法的意思就是指距离值相加,只不过距离可以用命令设定.[以前我总因为"距离矢量"这个词高大上而不懂 使用UDP报文,端口号520. 本篇要讨论的是 水平分割.毒性反转.有类无类.广播组播.计时器.Metric. RIPv1在RFC 1058.RIPv2在RFC 2453.RIPng在RFC 2080. 在不配置RIP 版本的情况,既能接收版本1 的报文也能接收版本2 的报文,