C语言编程题如果一个十进制数的数码从左到右是先严格单调下降,然后严格单调上升,我们称这个数为凹数。

2020-09-22 财经 72阅读
#include
#include
#include
char num[1000001]={0};
int ber[1000001]={0};
int main()
{int n,i;
for(n=100;n<1000001;n++)
{int i=0;
itoa(n,num,10);
int len=strlen(num);
while(num[i]>num[i+1]&&iif(i==len-1||i==0) continue;
while(num[i]if(i==len-1) ber[n]=1;
}
int N,a,b;
scanf("%d",&N);
while(N--)
{int count=0;
scanf("%d %d",&a,&b);
for(i=a;i<=b;i++)
if(ber[i]) count++;
printf("%d\n",count);
}
}
//这个好像还是会超时,但是下面这个可以通过
#include
#include
#include
char num[1000001]={0};
int ber[1000001]={0};
int main()
{int n,c;
for(n=100;n<1000001;n++)
{int i=0;
itoa(n,num,10);
int len=strlen(num);
while(num[i]>num[i+1]&&iif(i==len-1||i==0) continue;
while(num[i]if(i==len-1) ber[n]=1;
}
for(c=100;c<1000001;c++)
ber[c]+=ber[c-1];
int N,a,b;
scanf("%d",&N);
while(N--)
{
scanf("%d %d",&a,&b);
printf("%d\n",ber[b]-ber[a-1]);
}
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com