PAT Basic level practice 16

来源:互联网 发布:c语言原子锁 编辑:程序博客网 时间:2024/05/22 06:21

1016. 部分A+B (15)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

正整数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

C++:

#include<iostream>
using namespace std;
#include<string>
#include<cstdlib>


int main()
{
char pA[100], pB[100];
char A, B;
cin >> pA >> A >> pB >> B;
int cnt1 = 0, cnt2 = 0;
for (int i = 0; pA[i] != '\0'; i++)
{
if (pA[i] == A)
cnt1++;
}
for (int i = 0; pB[i] != '\0'; i++)
{
if (pB[i] == B)
cnt2++;
}
int a1 = A - '0';
int a2 = B - '0';
int sum1 = 0,sum2 = 0;
while (cnt1 != 0)
{
int y = 1;
for (int i = 0; i < cnt1-1; i++)
y = y * 10;
sum1 += y*a1;
cnt1--;
}
while (cnt2 != 0)
{
int y = 1;
for (int i = 0; i < cnt2-1; i++)
y = y * 10;
sum2 += y*a2;
cnt2--;
}
cout << sum1 + sum2;
system("Pause");
}

评测结果

时间结果得分题目语言用时(ms)内存(kB)用户8月27日 20:01答案正确151016C++ (g++ 4.7.2)1408Epics

测试点

测试点结果用时(ms)内存(kB)得分/满分0答案正确13488/81答案正确13081/12答案正确12562/23答案正确14082/24答案正确12922/2

0 0
原创粉丝点击