演算法學習 PATB1016

2021-09-12 08:02:27 字數 778 閱讀 6722

正整數 a 的「d​a​​(為 1 位整數)部分」定義為由 a 中所有 d​a​​ 組成的新整數 p​a​​。例如:給定 a=3862767,d​a​​=6,則 a 的「6 部分」p​a​​ 是 66,因為 a 中有 2 個 6。

現給定 a、d​a​​、b、d​b​​,請編寫程式計算 p​a​​+p​b​​。

輸入在一行中依次給出 a、d​a​​、b、d​b​​,中間以空格分隔,其中 0在一行中輸出 p​a​​+p​b​​ 的值。

3862767 6 13530293 3
399
3862767 1 13530293 8
0
模擬題。

基本思路就是,根據給定的dx,遍歷原數值的每一位,計算dx的出現次數,然後構造n個dx組成的新整數px。

這裡需要掌握的關鍵點是整數的按位遍歷。有兩種方法,一是將整數存成字元陣列,遍歷陣列的每乙個元素;二是利用除法和取餘來遍歷。

我使用的是後者。

#includeint main()

a /= 10;

} //process b

while(b!=0)

b /= 10; }

printf("%lld\n",pa+pb);

return 0;

}

? 《演算法筆記》pat甲乙級參考**

PAT B1016 部分A B 題解

正整數 a 的 d a 為 1 位整數 部分 定義為由 a 中所有 d a 組成的新整數 p a 例如 給定 a 3862767,d a 6,則 a 的 6 部分 p a 是 66,因為 a 中有 2 個 6。現給定 a d a b d b 請編寫程式計算 p a p b 輸入格式 輸入在一行中依次...

PAT B1016 部分A B (簡單模擬)

note 除 中的讓k1 10外,還可通過 10的方法列舉a b的每一位 while a 0 正整數 a 的 da 為 1 位整數 部分 定義為由 a 中所有 d a組成的新整數 p a 例如 給定 a 3862767,d a 6,則 a 的 6 部分 p a 是 66,因為 a 中有 2 個 6。...

PAT B1016字串儲存數字及操作

題目描述 正整數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,...