u型字符

最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增。比如 212 就是一个U型数字,但是 333 , 98 , 567 , 31313 ,就是不是U型数字。
现在蒜头君问你, [1,100000] 有多少U型数字?
提示:请不要输出多余的符号。
U型数组先递减再递增,不能有相等的数,重点是判断现在是递减时,之前是否有递增,现在是递增,之前是否有递减。
#include<stdio.h>
#include<string.h>
int main()
{
int a[10],sum=0;
for(int i=100;i<=100000;i++)
{
int t=i,num=0;
while(t>0)
{
a[++num]=t%10;
t=t/10;
}
int x=1,dec=0,inc=0;
for(int j=1;j<num;j++)
{
if(a[j]==a[j+1])
{
x=0;break;
}
else
{
if(a[j]>a[j+1])
{
if(dec==0)
dec=1;
if(inc==1)
{
x=0;break;
}
}
else
{
if(inc==0)
inc=1;
if(dec==0)
{
x=0;break;
}
}
}
}
if(x==1&&dec==1&&inc==1)
sum++;
}
printf("%d\n",sum);
return 0;
}

猜你喜欢

转载自blog.csdn.net/liuliu2333/article/details/79151881