1058. A+B in Hogwarts (20)
1.该题不难,主要是字符串的处理和进制处理
AC代码:
//#include<string> //#include<stack> //#include<unordered_set> //#include <sstream> //#include "func.h" //#include <list> #include <iomanip> #include<unordered_map> #include<set> #include<queue> #include<map> #include<vector> #include <algorithm> #include<stdio.h> #include<iostream> #include<string> #include<memory.h> #include<limits.h> #include<stack> using namespace std; bool isNum(char c) { if (c <= '9'&&c >= '0') return true; else return false; } void string2Num(string a,int&a1, int&a2, int&a3) { int idx = 0; for (int i = 0; i < a.size(); i++) { if (idx == 0 && isNum(a[i])) a1 = a1 * 10 + a[i] - '0'; else if (idx == 1 && isNum(a[i])) a2 = a2 * 10 + a[i] - '0'; else if (idx == 2 && isNum(a[i])) a3 = a3 * 10 + a[i] - '0'; else if (a[i] == '.') { idx++; } } } int main(void) { string a, b; cin >> a >> b; int a1 = 0, a2 = 0, a3 = 0; int b1 = 0, b2 = 0, b3 = 0; string2Num(a, a1, a2, a3); string2Num(b, b1, b2, b3); int carry = 0; a3 = a3 + b3; carry = a3 / 29; a3 %= 29; a2 = a2 + b2 + carry; carry = a2 / 17; a2 %= 17; a1 = a1 + b1 + carry; printf("%d.%d.%d\n", a1, a2, a3); return 0; }