B1016 部分A+B (15分)
阿新 • • 發佈:2019-01-21
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分)