可以定义一个函数来判断一个整数是否“lucky”数,在函数中可以依次提取这个整数的每一位,并计算每一个出现的整数的次数,如果满足“lucky”数的条件,则返回1,如果不满足,则返回0。
一个实现,如下:
#include <stdio.h>
// 定义函数findLuckyNum(),判断参数num是否是“lucky”数,如果是的返回1,如果不是返回0
int findLuckyNum(long long num){
int i,nums[10]={0},temp,one=0,more=0;
// 如果要判断负整数,则可以加个判断,先将其转为对应的正整数
// if(num<0){
// num=-num;
// }
//
if(num==0){
nums[0]++;
}
while(num>0){
temp=num%10;
nums[temp]++;
num/=10;
}
for(i=0;i<10;i++){
if(nums[i]==1){
one++;
}
if(nums[i]>1){
more++;
}
}
if(one==1&&more==1){
return 1;
}else{
return 0;
}
}
int main(void){
long long a,b,nums=0,i;
scanf("%lld%lld",&a,&b); // 从输入获取a和b的值
// 遍历区间a和b之间的每个整数,计算其中有多少“lucky”数
for(i=a;i<=b;i++){
if(findLuckyNum(i)==1){
nums++;
// printf("%lld\n",i);
//
// if(nums%50==0){
// getchar();
// }
}
}
printf("%lld",nums); // 打印结果
return 0;
}
