正整数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的值。
输入样例1:3862767 6 13530293 3输出样例1:
399输入样例2:
3862767 1 13530293 8输出样例2:
0 代码如下:1.本题中需要找出数a里共有几个da,因此定义char类型,每个数字(0-9)占一位,但此时的数是ASCII值,比较时应该减48#include<stdio.h> #include<iostream> #include<string.h> using namespace std; int main(){ char a[15],b[15]; int da,db,i=0,j=0,pa=0,pb=0; cin>>a>>da>>b>>db; for(i=0;i<15;i++){ if(a[i]-48==da) j++; } while(j--){ pa=da+pa*10; } j=0; for(i=0;i<15;i++){ if(b[i]-48==db) j++; } while(j--){ pb=db+pb*10; } cout<<pa+pb; }
2.用cin输入一个数组时,空格回车均可表示结束
cin与scanf的区别:scanf是格式化输入,printf是格式化输出。 cin是输入流,cout是输出流。效率稍低,但书写简便。 格式化输出效率比较高,但是写代码麻烦。,流输出操作效率稍低,但书写简便。 cout之所以效率低,是先把要输出的东西存入缓冲区,再输出,导致效率降低。