题解
幸运数字
1 条题解
-
0
解题思路
把数字逐位拆开,奇数的位相加存进
o,偶数的位相加存进e。如果o == e就是幸运数字。参考代码
#include <iostream> using namespace std; int main() { int n; cin >> n; int o = 0, e = 0; // o存奇数位和,e存偶数位和 while (n) { // 逐位拆开 int d = n % 10; // 取当前个位 if (d % 2 == 1) o += d; // 奇数位加进o else e += d; // 偶数位加进e n /= 10; // 去掉个位 } if (o == e) cout << "Yes" << endl; else cout << "No" << endl; return 0; }复杂度分析
循环次数等于位数,n 最大 100000(6 位),时间复杂度 O(位数),额外空间复杂度 O(1)。
- 1