【每日一题】Problem 628B. New Skateboard
解决思路
数学题
只要有两位数可以被 4 整除,那么以该两位数结尾的任何数都可以被 4 整除,推导过程如下:
设 10x + y = 4z, 则对于任意的前置 n 有
10(10n + x) + y = 100n + 10x + y
该式必定能被 4 整除
#include <bits/stdc++.h>
int main() {
std::string str; std::cin >> str;
long long ans = 0;
for (int i = 1; i < str.size(); ++i) {
if (((str[i - 1] - '0') * 10 + (str[i] - '0')) % 4 == 0) ans += i;
}
for (int i = 0; i < str.size(); ++i) {
if ((str[i] - '0') % 4 == 0) ++ans;
}
std::cout << ans << "\n";
return 0;
}
本文来自博客园,作者:HelloEricy,转载请注明原文链接:https://www.cnblogs.com/HelloEricy/p/17589178.html