#include <stdio.h>
#include <math.h>
/*
题目描述
#include <math.h>
/*
题目描述
Ada三岁了,会掰着指头数数了.她的爸爸既是欢喜,又杂着忧愁.欢喜的是,教了她三年,终于会数了. 忧的是,Ada对数字实在不敏感啊!Ada的爸爸又准备了新的题目训练她.
ADA IV型数的定义如下: 把一个正整数的各个位上的数字依次组成一个数列,如果该数列是等差数列,则该数为ADA IV型数.如13579和2468都是ADA IV型数, 153和246810都不是ADA IV型数.为了避免不必要的麻烦,规定区间[1,99]的数均为ADA IV型数.
给定一个区间[A,B],其中1<=A<=B<=1000000000,问该区间含有多少个ADA IV型数.这个问题对ADA来说显然太难了,但是我想你行的,试一试吧.
输入
由多组测试数据组成, 组数不超过100。
每一组测试数据仅有一行,只包含由空格分开的整数A和B。
输出
对于每一组测试数据,输出对应区间的ADA IV型数的总数目,每组一行。
样例输入
1 100
112 160
1 100
112 160
样例输出
99
4
*/
int fun(int n){//判断n是不是ada数 n是>=100的数
int n1,t=n,j=0,i,flag=0;
int a[9];
if(n<100)
return flag;
else
{
n1=log10(n)+1;//得到n的位数
while(t>0){
a[j]=t%10;
t/=10;
j++;
}
for(j=j-1;j-2>=0;j--){
if(!(a[j]-a[j-1]==a[j-1]-a[j-2]))
break;
}
if(j-2<0)
flag=1;
return flag;
}
}
int fun(int n){//判断n是不是ada数 n是>=100的数
int n1,t=n,j=0,i,flag=0;
int a[9];
if(n<100)
return flag;
else
{
n1=log10(n)+1;//得到n的位数
while(t>0){
a[j]=t%10;
t/=10;
j++;
}
for(j=j-1;j-2>=0;j--){
if(!(a[j]-a[j-1]==a[j-1]-a[j-2]))
break;
}
if(j-2<0)
flag=1;
return flag;
}
}
adaIv(int num1,int num2){
int max,min,sum=0,t;
max=num1>num2?num1:num2;
min=num1<num2?num1:num2;
t=min;
if(min<100&&max<100)
sum=max-min+1;
else
{
for(;min<=max;min++){
if(fun(min))
sum++;
}
if(t<100)
sum+=99-t+1;
}
printf("%d",sum);
}
int main(int argc, char*argv[])
{
int num1,num2;
printf("请输入两个数\n");
while(scanf("%d%d",&num1,&num2)!=EOF){
adaIv(num1,num2);
printf("请输入两个数,ctrl+z退出\n");
}
}
int max,min,sum=0,t;
max=num1>num2?num1:num2;
min=num1<num2?num1:num2;
t=min;
if(min<100&&max<100)
sum=max-min+1;
else
{
for(;min<=max;min++){
if(fun(min))
sum++;
}
if(t<100)
sum+=99-t+1;
}
printf("%d",sum);
}
int main(int argc, char*argv[])
{
int num1,num2;
printf("请输入两个数\n");
while(scanf("%d%d",&num1,&num2)!=EOF){
adaIv(num1,num2);
printf("请输入两个数,ctrl+z退出\n");
}
}