Codeup——问题 H: 部分A+B (15)
生活随笔
收集整理的這篇文章主要介紹了
Codeup——问题 H: 部分A+B (15)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2019-03-31?17:52:04
?
問題 H: 部分A+B (15)
時(shí)間限制: 1 Sec??內(nèi)存限制: 32 MB提交: 801??解決: 569
[提交][狀態(tài)][討論版][命題人:外部導(dǎo)入]
題目描述
正整數(shù)A的“DA(為1位整數(shù))部分”定義為由A中所有DA組成的新整數(shù)PA。例如:給定A = 3862767,DA?= 6,則A的“6部分”PA是66,因?yàn)锳中有2個(gè)6。
現(xiàn)給定A、DA、B、DB,請編寫程序計(jì)算PA?+ PB。
輸入
輸入在一行中依次給出A、DA、B、DB,中間以空格分隔,其中0 < A, B < 1010。輸出
在一行中輸出PA?+ PB的值。樣例輸入
3862767 6 13530293 3 3862767 1 13530293 8樣例輸出
399 0我的算法:
把數(shù)字當(dāng)做字符串輸入,然后遍歷某一字符串s,統(tǒng)計(jì)每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù)(有個(gè)技巧,就是利用數(shù)組的下標(biāo)表示數(shù)字0-9) 比如:a[i]表示數(shù)字為i時(shí)出現(xiàn)的此時(shí) (0<=i<=9) 也就是說該數(shù)組長度為10
有個(gè)易錯(cuò)點(diǎn)是,我是將'6'以字符串形式輸入的,那么,在找'6'是否在前一個(gè)字符串中出現(xiàn)過時(shí),應(yīng)當(dāng)變?yōu)閟[0]-'0'來訪問,計(jì)數(shù)數(shù)組a[i]=>a[s[0]-'0']
代碼如下:(已經(jīng)AC)
1 #include <iostream> 2 #include<cstring> 3 #include<sstream> 4 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 5 using namespace std; 6 #define ll long long 7 int cal_num1[10];//0-9數(shù)字 8 9 10 ll Add(int num1){ 11 ll n1=0; 12 13 while(cal_num1[num1]--){ 14 n1=n1*10+num1; 15 } 16 17 return n1; 18 19 } 20 21 void InitC(string s){ 22 memset(cal_num1,0,sizeof(cal_num1)); 23 for(int i=0;i<s.length();i++){ 24 cal_num1[s[i]-'0']++; 25 } 26 } 27 int main(int argc, char** argv) { 28 string s,s1,s2,s3; 29 while(cin>>s>>s1>>s2>>s3){ 30 31 InitC(s); 32 ll n1=Add(s1[0]-'0'); 33 34 InitC(s2); 35 ll n2=Add(s3[0]-'0'); 36 cout<<n1+n2<<endl; 37 38 } 39 return 0; 40 }
?
如果還有更簡單的做法,請指教.謝啦轉(zhuǎn)載于:https://www.cnblogs.com/industrial-fd-2019/p/10632315.html
總結(jié)
以上是生活随笔為你收集整理的Codeup——问题 H: 部分A+B (15)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【大数据】学习大数据前需要掌握的知识
- 下一篇: 【跃迁之路】【671天】程序员高效学习方