1 条题解

  • 0
    @ 2022-12-6 13:26:34

    输入带空格的字符串

    当需要读取一行包含空格的字符串时,可以使用 getline(cin, s); 的方式,读入一整行到字符串 ss 中。

    取余(模运算)

    以下等式都是成立的

    (a + b) % c == (a % c + b % c) % c
    (a * b) % c == ((a % c) * (b % c)) % c
    (a * b + x * y) % c == 
      ( ((a % c) * (b % c)) % c + 
        ((x % c) * (y % c)) % c ) % c
    

    而一个十进制整数 $123456 == 1\times 10^5 + 2\times 10^4 + 3\times 10^3 + 4\times 10^2 + 5 \times 10 + 6$,因此可以用下面程序中的方法处理。

        getline(cin, s);
        int cnt, now, ans;
        cnt = now = ans = 0;
        for (int i = 0; i < s.length(); i++)
        {
            if (s[i] == ' ')
            {
                cnt++;
                ans = (ans + now) % MODNUM;
                now = 0;
            }
            else
                now = (now * 10 + s[i] - '0') % MODNUM;
        }
        ans = (ans + now) % MODNUM;
        cout << cnt << " " << ans << endl;
    
    • 1

    信息

    ID
    1141
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    16
    已通过
    10
    上传者