#30426: 想法


dfd8282@gmail.com (fishhh)

學校 : 嘉義市私立嘉華高級中學
編號 : 99760
來源 : [163.27.13.253]
最後登入時間 :
2024-04-25 12:54:32
c014. 10035 - Primary Arithmetic -- UVa10035 | From: [163.27.13.193] | 發表日期 : 2022-05-20 19:56

我是透過兩個string去做輸入,用一個for迴圈,從兩個string的最後一個數開始讀(避免兩個數大小不同)

很類似大數的運算(但這題沒有大數

以下是一部分程式

string n,m;        

bool cary=0;
        int ans=0;
        for(int t1=n.size()-1,t2=m.size()-1;t1>=0||t2>=0;t1--,t2--){
            if(t1<0){
                if(m[t2]-'0'+cary>=10){
                    cary=1;
                    ans++;
                }
                else{
                    cary=0;
                }
            }
            else if(t2<0){
                if(n[t1]-'0'+cary>=10){
                    cary=1;
                    ans++;
                }
                else{
                    cary=0;
                }
            }
            else if((n[t1]-'0')+(m[t2]-'0')+cary>=10){
                ans++;
                cary=1;
            }
            else{
                cary=0;
            }
        }

 
ZeroJudge Forum