pa

PTA乙级1016 部分A+B

五迷三道 提交于 2020-02-22 22:52:20
正整数 A 的“D​A​​(为 1 位整数)部分”定义为由 A 中所有 D​A​​ 组成的新整数 P​A​​。例如:给定 A=3862767,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<A,B<10​10​​。 输出格式: 在一行中输出 P​A​​+P​B​​ 的值。 输入样例 1: 3862767 6 13530293 3 输出样例 1: 399 输入样例 2: 3862767 1 13530293 8 输出样例 2: 0 #include <iostream> #include <string> using namespace std; int main() { string A,B; char DA,DB; int PA=0,PB=0; cin>>A>>DA>>B>>DB; for(int i=0;i<A.size();i++){ if(A[i]==DA){ PA=PA*10+stoi(A.substr(i,1));//不明白的去看PTA乙级1002 } } for(int i=0;i<B.size();i++){ if(B[i]==DB){ PB=PB*10

PTA 1016 部分A+B (15分)

狂风中的少年 提交于 2020-02-04 00:57:07
正整数 A 的“D​A​​(为 1 位整数)部分”定义为由 A 中所有 D​A​​ 组成的新整数 P​A​​。例如:给定 A=3862767,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<A,B<10​10​​。 输出格式: 在一行中输出 P​A​​+P​B​​ 的值。 输入样例 1: 3862767 6 13530293 3 输出样例 1: 399 输入样例 2: 3862767 1 13530293 8 输出样例 2: 0 代码片 A , D1 , B , D2 = input ( ) . split ( ) n1 = A . count ( D1 ) n2 = B . count ( D2 ) if n1 != 0 and n2 == 0 : Pa = D1 * n1 Pb = '0' elif n1 == 0 and n2 != 0 : Pa = '0' Pb = D2 * n2 elif n1 == 0 and n2 == 0 : Pa = '0' Pb = '0' else : Pa = D1 * n1 Pb = D2 * n2 P = int ( Pa

PAT 1016. 部分A+B (15)

廉价感情. 提交于 2020-02-03 05:17:44
正整数A的“D A (为1位整数)部分”定义为由A中所有D A 组成的新整数P A 。例如:给定A = 3862767,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 < A, B < 10 10 。 输出格式: 在一行中输出P A + P B 的值。 输入样例1: 3862767 6 13530293 3 输出样例1: 399 输入样例2: 3862767 1 13530293 8 输出样例2: 0 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<stdlib.h> 5 int main(){ 6 char a[20]; 7 char a1; 8 char b[20]; 9 char b1; 10 long _a = 0; 11 long _b = 0; 12 scanf("%s",a); 13 getchar(); 14 scanf("%c",&a1); 15 scanf("%s",b); 16 getchar(); 17 scanf("%c",&b1); 18 for(int i=0;i<strlen(a);i

PAT basic 1016 部分A+B (15分) C++

送分小仙女□ 提交于 2020-01-25 16:17:56
一、题目描述 正整数 A 的“D​A(为 1 位整数)部分”定义为由 A 中所有 D​A组成的新整数 P​A 。例如:给定 A=3862767,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<A,B<10​的10次方​​ 。 输出格式: 在一行中输出 P​A +PB的值。 输入样例 1: 3862767 6 13530293 3 输出样例 1: 399 输入样例 2: 3862767 1 13530293 8 输出样例 2: 0 二、代码 # include <stdlib.h> # include <string> # include <cmath> # include <iostream> using namespace std ; int main ( ) { int da = 0 , sum = 0 ; int temp , numa = 0 ; int a [ 11 ] ; temp = getchar ( ) ; while ( temp != ' ' ) { a [ numa ] = temp - '0' ; numa ++ ; temp = getchar ( )

PAT B1016  部分A+B

眉间皱痕 提交于 2019-11-29 21:56:04
PAT B1016 部分A+B 正整数 A 的“D​A​​(为 1 位整数)部分”定义为由 A 中所有 D​A​​ 组成的新整数 P​A​​。例如:给定 A=3862767,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<A,B<10​10​​。 输出格式: 在一行中输出 P​A​​+P​B​​ 的值。 输入样例 1: 3862767 6 13530293 3 输出样例 1: 399 输入样例 2: 3862767 1 13530293 8 输出样例 2: 0 #include <iostream> using namespace std; int main() { long long a,da,b,db,pa=0,pb=0; cin >>a>>da>>b>>db; while(a!=0) { if(a%10 == da) pa = pa*10+da; a = a/10; } while(b!=0) { if(b%10 == db) pb = pb*10+db; b = b/10; } cout << pa+pb << endl; return 0; } 来源:

2019沈阳icpc网络赛H德州扑克

守給你的承諾、 提交于 2019-11-29 14:48:35
题面: https://nanti.jisuanke.com/t/41408 题意:A,2,3,4,5,6,7,8,9,10,J,Q,K,13张牌,无花色之分,val为1~13。 给n个人名+n个牌,输出人名的ranklist 比较规则: 皇家顺最大 顺子第二,都是顺看最大牌的val 四条第三,先看四张相同牌的val,再看剩下那张牌的val 葫芦第四,先看三张相同牌的val,再看两张相同牌的val 三条第五,先看三张相同牌的val,再看剩下两张牌的val之和 两对第六,先看大的两张相同牌的val,再看小的两张相同牌的val,再看剩下一张牌的val 一对第七,先看两张相同牌的val,再看剩下三张牌的val之和 高牌第八,看五张牌的val之和 比较完还分不出来两幅牌谁赢,看名字,字典序小的赢(不会有相同的名字)。 #include<bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f typedef long long ll; const int maxn=1e5+500; struct node { string name; int ranks; int val; int a[50]; }p[maxn]; pair<int,int> calrank(int e,int d,int c,int b,int a) { //a

PAT B1016 部分A+B

会有一股神秘感。 提交于 2019-11-28 01:50:15
PAT B1016 部分A+B 题目描述:   正整数 A 的“D​A​​(为 1 位整数)部分”定义为由 A 中所有 D​ A ​​ 组成的新整数 P ​A​​ 。例如:给定 A=3862767,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<A,B<10​10​​。    输出格式:   在一行中输出 P​A​​+P​B​​ 的值。    输入样例 1:    3862767 6 13530293 3    输出样例 1:    399    输入样例 2:    3862767 1 13530293 8    输出样例 2:    0 参考代码: 1 /*********************************************** 2 PAT B1016 部分A+B 3 ***********************************************/ 4 #include <iostream> 5 6 using namespace std; 7 8 long long getP(long