2.幸运数
小蓝认为如果一个数含有偶数个数位,并且前面一半的数位之和等于后面一半的数位之和,则这个数是他的幸运数字。
例如 2314 是一个幸运数字,因为它有 4 个数位,并且 2 + 3 = 1 + 4 。
现在请你帮他计算从 1 至 100000000 之间共有多少个不同的幸运数字。
本题的结果为一个整数,在提交答案时只输出这个整数,输出多余的内容将无法得分。
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL n = 100000000;
int cnt;
int main()
{
for(LL i = 10; i <= n; i ++)
{
string s = to_string(i);
int n = s.size();
if(n % 2 != 0)
continue;
int n1 = 0, n2 = 0;
for(int i = 0; i < n / 2; i ++)
n1 += s[i] - '0';
for(int i = n / 2; i < n; i ++)
n2 += s[i] - '0';
if(n1 == n2)
cnt ++;
}
cout << cnt << endl;
return 0;
}
答案:4430091