1016. 部分A+B (15)
时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
题目描述
正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。
现给定A、DA、B、DB,请编写程序计算PA + PB。
输入描述:
输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。
输出描述:
在一行中输出PA + PB的值。
输入例子:
3862767 6 13530293 3
输出例子:
399
1 #include<iostream> 2 using namespace std; 3 4 int main(){ 5 long a = 3862767; 6 7 int da= 6; 8 long b = 13530293; 9 10 int db= 3; 11 int n=0; 12 int i=1; 13 int suma=0; 14 int sumb=0; 15 cin>>a>>da>>b>>db; 16 long a2=a; 17 long b2 = b; 18 for(i=1; i<=a2*1; i=i*10){ 19 if(a%10 == da){ n++; 20 suma = suma*10+da; 21 } 22 a /=10; 23 } 24 i=0; 25 for(i=1; i<=b2*1; i=i*10){ 26 if(b%10 == db){ 27 sumb = sumb*10+db; 28 } 29 30 b /=10; 31 } 32 33 cout<<suma+sumb; 34 35 return 0; 36 }
用字符串解法:
1 #include <iostream> 2 #include <string.h> 3 using namespace std; 4 int main(){ 5 char A[] = "3862767"; 6 int Da = 6; 7 char B[] = "13530293"; 8 int Db = 3; 9 int sum =0; 10 int sumb =0; 11 int i; 12 cin>>A>>Da>>B>>Db; 13 for(i=0;i<=strlen(A);i++){ 14 if(A[i]-'0' == Da) 15 sum = sum*10+Da; 16 } 17 for(int i=0;i<=strlen(B);i++){ 18 if(B[i]-'0' == Db) 19 sumb = sumb*10+Db; 20 } 21 22 cout<<sum+sumb<<endl; 23 24 return 0; 25 }

浙公网安备 33010602011771号