1016 部分A+B
一、題目
正整數 A 的"
D
A
D_A
DA?(為 1 位整數)部分”定義為由 A 中所有
D
A
D_A
DA? 組成的新整數
P
A
P_A
PA?,例如:給定 A=3862767,
D
A
D_A
DA?=6,則 A 的“6 部分”
P
A
P_A
PA? 是 66,因為 A 中有 2 個 6,
現給定
A
、
D
A
、
B
、
D
B
A、D_A、B、D_B
A、DA?、B、DB? ,請撰寫程式計算
P
A
+
P
B
P_A+P_B
PA?+PB?,
??
二、輸入輸出
輸入格式
輸入在一行中依次給出 ,中間以空格分隔,其中 0 < A , B < 1 0 10 0<A,B<10^{10} 0<A,B<1010
輸出格式
在一行中輸出 P A + P B P_A+P_B PA?+PB?的值,
三、樣例
輸入樣例1
3862767 6 13530293 3
輸出樣例1
399
輸入樣例2
3862767 1 13530293 8
輸出樣例2
0
四、題目分析
讀入兩組資料,設定和的初始值為零,對于每一組資料,遍歷字串,數字初始化為字符對應數字,每次找到對應字符,將數字加如sum中,再將數值乘十,作為下一次的加數,
五、代碼
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s1, s2;
char ch1, ch2;
int num1, num2;
int sum = 0;
cin >> s1 >> ch1 >> s2 >> ch2;
num1 = ch1 - '0';
num2 = ch2 - '0';
for (int i = 0; i < s1.length(); i++)
{
if (s1[i] == ch1)
{
sum += num1;
num1 *= 10;
}
}
for (int i = 0; i < s2.length(); i++)
{
if (s2[i] == ch2)
{
sum += num2;
num2 *= 10;
}
}
cout << sum;
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/261064.html
標籤:其他
