1. 程式人生 > >B1016 部分A+B (15分)

B1016 部分A+B (15分)

ref lin return htm std mes log ras mat

B1016 部分A+B (15分)

輸入格式:

輸入在一行中依次給出 A、DA、B、DB,中間以空格分隔,其中
\(0<A,B<10^10\)

輸出格式:

在一行中輸出 PA+PB的值。

輸入樣例 1:

3862767 6 13530293 3

輸出樣例 1:

399

輸入樣例 2:

3862767 1 13530293 8

思路

關鍵是首先處理出,只含有DA的字符串。
然後將該字符串轉化為整數相加。
使用c++的特性

c++11 數值類型和字符串的相互轉換 - 農民伯伯-Coding - 博客園 https://www.cnblogs.com/gtarcoder/p/4925592.html

to_string()

可以數字轉為字符串

/*字符串(string)轉為數字*/
std::string str = "1000";
int val = std::stoi(str);
long val = std::stol(str);
float val = std::stof(str);
/*字符串(char*)轉為數字*/
atoi: 將字符串轉換為 int
atol: 將字符串轉換為long
atoll:將字符串轉換為 long long
atof: 將字符串轉換為浮點數

AC代碼

#include<bits/stdc++.h>
using namespace std;
int main(void){
    string a,b;
    char da, db;
    int m,i=0;
    cin >> a >> da >> b >> db;
    while(i<a.length()) {
        if(a[i] != da){
            a.erase(a.begin() + i);
            i--; 
        }
        i++;
    }
    //cout <<a<<endl;/*取得對應字符串成功*/
    i=0;
    while(i<b.length()) {
        if(b[i] != db){
            b.erase(b.begin() + i);
            i--; 
        }
        i++;
    }
    //cout <<b<<endl;/*取得對應字符串成功*/
    
    if(a!="" && b!=""){/* stol 函數對空字符串報錯*/
        m =stol(a) + stol(b);
    }
    else{
        if(a==""&& b!=""){
            m=stol(b);
        }
        else if(a=="" && b==""){
            m=0;
        }
        else
            m=stol(a);
    }
    printf("%d",m);
    return 0;
}

B1016 部分A+B (15分)