题目描述
如果把一个数字十进制表示的奇数位和偶数位分别相加得到的和相同,小小就认为它是一个幸运的数字。例如:
-
12345 奇数位相加 1+3+5=9 偶数位相加 2+4=6 因此 12345 不是幸运数字;
-
2332 奇数位相加 2+3=5 偶数位相加 3+2=5 因此 2332 是幸运数字。
对于给定的 a 和 b,小小希望你求出 a,a+1,a+2,…,b 中幸运数字的数量。
输入格式
输⼊数据仅一行,包含空格分隔的两个整数 a 和 b。
输出格式
输出一行一个整数,代表 a,a+1,a+2,…,b 中幸运数字的数量。
输入输出样例
输入 #1
1 100
输出 #1
9
输入 #2
4096 65536
输出 #2
3454
说明/提示
- 对于 100% 的数据,满足
。
代码
#include <bits/stdc++.h>
using namespace std;
bool lucky(int n){
int t=0;
while(n!=0){
t*=10;
t+=n%10;
n/=10;
}
n=t;
int a=0,b=0,i=1;
while(n!=0){
int m=n%10;
if(i%2==1){
b+=m;
}
else a+=m;
n/=10;
i++;
}
if(a==b) return 1;
return 0;
}
int main(){
int a,b,cnt=0;
cin>>a>>b;
for(int i=a;i<=b;i++){
if(lucky(i)) cnt++;
}
cout<<cnt;
return 0;
}