幸运数字
作者:互联网
/*
小雅同学认为6,8是她的幸运数字,而其他数字均不是,一个幸运数是指在十进制表示下只含有幸运数字的数。给定你一个区间(a,b)a和b之间(其中包括a和b幸)运数的个数。
输入描述:
输入两个整数a和b,a的取值范围在1和1000000000之间(其中包括1和1000000000),b的取值范围在a和1000000000之间(其中包括a和1000000000)。
输出描述:
返回a和b之间的幸运数个数,如果入参不合法,请输出-1示例1
输入
复制1 10
输出
复制2
说明
6,8,6666,88888,6668888,68686688均为幸运数字,当a=1,b=10函数返回值为2。
*/
#pragma warning(disable:4996)
#include<stdio.h>
#include<string.h>
int main(int argc, char *argv[])
{
long int i, a = 0, b = 0, t;
int cnt = 0;
char a1[99], b1[99];
scanf("%s %s", a1, b1);
for (i = 0; i < strlen(b1); i++)
{
if (i < strlen(a1))
{
if (a1[i]<'0' || a1[i]>'9' || b1[i]<'0' || b1[i]>'9')
{
printf("-1\n");
return 0;
}
a = a * 10 + a1[i] - '1' + 1;
b = b * 10 + b1[i] - '1' + 1;
}
else
{
if (b1[i]<'0' || b1[i]>'9')
{
printf("-1\n");
return 0;
}
b = b * 10 + b1[i] - '1' + 1;
}
}
for (i = a; i <= b; i++)
{
int flag = 0;
int t1 = i;
while (t1 > 0)
{
t = t1 % 10;
if (t != 8 && t != 6)
{
flag = 1;
break;
}
t1 /= 10;
}
if (flag == 0)
{
cnt++;
}
}
printf("%d\n", cnt);
return 0;
}
标签:10,数字,int,1000000000,a1,b1,幸运 来源: https://www.cnblogs.com/lijianmin6/p/10767718.html