[B3786] [信息与未来 2023] 幸运数字 题解
qifan_maker · · 题解
题目链接
洛谷
题目解法
遍历 cnt 增加一,最后输出 cnt。
如何判断幸运数字呢?
我们可以用 to_string 函数先将变量转换为字符串,方便我们统计奇数位之和与偶数位之和。
接下来遍历字符串,用变量 odd 和 even 分别记录奇数位和偶数位的和,如果这一位是奇数位,则 odd 加上这一位上的数,否则 even 加上这一位上的数。统计完成后,比较 odd 与 even 的大小,如果相等,则这个数为幸运数字,否则不是。
AC Code
/*
Problem:
B3786 [信息与未来 2023] 幸运数字
By:
qifan_maker
*/
#include <bits/stdc++.h>
using namespace std;
bool check(int x){
string y = to_string(x);
int odd=0,even=0;
for (int i=0;i<y.size();i++){
if (i%2 == 0){
odd += y[i]-'0';
}
else {
even += y[i]-'0';
}
}
return odd == even;
}
int main(){
int a,b;
cin >> a >> b;
int cnt=0;
for (;a<=b;a++){
if (check(a)){
cnt++;
}
}
cout << cnt;
return 0;
}