PAT 엘리베이터 경기 L1-025.양의 정수 A+B [문자열 처리]

5092 단어
제목 링크
https://www.patest.cn/contests/gplt/L1-025
사고의 방향
문자열 B를 입력할 때 getline을 사용해야 합니다. 빈칸이 있을 수 있기 때문에 문자열을 숫자로 바꾸고 범위와 불법 문자가 있는지 판단하면 됩니다.
AC 코드
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

typedef long long LL;
const double PI = 3.14159265358979323846264338327;
const double E = 2.718281828459;
const double eps = 1e-6;
const int MAXN = 0x3f3f3f3f;
const int MINN = 0xc0c0c0c0;
const int maxn = 1e5 + 5;
const int MOD = 1e9 + 7;
int f(string s)
{
    int len = s.size();
    int i;
    int num = 0;
    if (s[0] == '0')
        return -1;
    for (i = 0; i < len; i++)
    {
        if (s[i] <= '9' && s[i] >= '0')
            num = num * 10 + (s[i] - '0');
        else
        {
            return -1;
        }
    }
    return num;
}

int main()
{
    string a, b;
    cin >> a;
    getchar();
    getline(cin, b);
    int n = f(a);
    int m = f(b);
    if (n >= 1 && n <= 1000 && m >= 1 && m <= 1000)
        printf("%d + %d = %d
"
, n, m, n + m); else if(n <= 1000 && n >= 1) printf("%d + ? = ?
"
, n); else if (m <= 1000 && m >= 1) printf("? + %d = ?
"
, m); else printf("? + ? = ?
"
); }

전재 대상:https://www.cnblogs.com/Dup4/p/9433299.html

좋은 웹페이지 즐겨찾기