微信公眾號(hào):計(jì)算機(jī)黑科學(xué)大全
【歡迎關(guān)注微信公眾號(hào):計(jì)算機(jī)黑科學(xué)大全,對(duì)話框回復(fù):PAT乙級(jí)真題】獲取全部真題詳解及代碼示例
個(gè)人博客地址:https://whenever5225.github.io
部分A+B
題目描述:
正整數(shù) A 的“D(A)(為 1 位整數(shù))部分”定義為由 A 中所有 D(A) 組成的新整數(shù) P(A) 柬焕。例如:給定A=3862767兔辅,D(A)=6,則 A 的“6 部分”P(A)是 66击喂,因?yàn)?A 中有 2 個(gè) 6维苔。
現(xiàn)給定 A、D(A) 懂昂、B介时、D(B),請(qǐng)編寫程序計(jì)算 P(A)+P(B)凌彬。輸入格式:
輸入在一行中依次給出 A沸柔、D(A) 、B铲敛、D(B)褐澎,中間以空格分隔,其中 0<A,B<
伐蒋。
輸出格式:
在一行中輸出 P(A) +P(B) 的值工三。
輸入樣例1:
3862767 6 13530293 3
輸出樣例1:
399
輸入樣例2:
3862767 1 13530293 8
輸出樣例2:
0
題目來(lái)源:PAT乙級(jí)1016
作者:CHEN, Yue
單位:浙江大學(xué)
問(wèn)題解決:
解題思想
本題思路比較簡(jiǎn)單。因?yàn)榍骯的da部分(即pa)與求b的db部分(即pb)是重復(fù)的過(guò)程先鱼,故定義一個(gè)求x的dx部分的函數(shù)俭正。將一個(gè)多位整數(shù)的各位提取出來(lái)是一個(gè)常見(jiàn)的過(guò)程,提取之后再進(jìn)行判斷處理即可焙畔。注意要把a(bǔ),b,x定義為long long型掸读,由題給范圍很容易看出來(lái)。
代碼示例(C/C++)
小提示:請(qǐng)將以下代碼保存為.cpp
格式(C++程序)左右滑動(dòng)代碼可查看全部?jī)?nèi)容
#include <cstdio>
using namespace std;
long long Calculate_D(long long x,int dx);
int main()
{
long long a,b,pa,pb;
int da,db;
scanf("%lld%d%lld%d",&a,&da,&b,&db);
pa = Calculate_D(a,da);
pb = Calculate_D(b,db);
printf("%lld\n",pa + pb);
return 0;
}
//計(jì)算正整數(shù) x 的“dx(為 1 位整數(shù))部分”
long long Calculate_D(long long x,int dx)
{
long long px = 0;
while(x){
if(x % 10 == dx){
px = px * 10 + dx;
}
x = x / 10;//不要忽略此處,否則將進(jìn)入死循環(huán)
}
return px;
}
微信號(hào):aiyoutao76