1 条题解
-
0
幸运数字之和
解题思路
枚举1~N每个整数x,同时检查x%30与x%107。两个条件都满足时把x本身加入答案。
例如N=50时,末位7的候选有7、17、27、37、47,只有27能被3整除,所以和为27。
正确性说明
模3为0恰好表示能被3整除,模10为7恰好表示个位7。逻辑与完整对应幸运数字定义,每个合法数字被加入一次,其他数字不加入。
易错点
求的是幸运数数值总和,不是个数;不能只满足两个条件中的一个。
复杂度
时间O(N),空间O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; long long sum = 0; for (int x = 1; x <= N; x++) if (x % 3 == 0 && x % 10 == 7) sum += x; cout << sum << "\n"; return 0; }
- 1