最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增。比如 212 就是一个U型数字,但是 333, 98, 567, 31313,就是不是U型数字。现在蒜头君问你,[1,100000] 有多少U型数字?
提示:请不要输出多余的符号。
思路:
10w以内,符合情况的只有三位数,四位数,五位数
这里的U型不要求对称。。。 我以为是对称。。所以错了。。
这题是填空题,所以直接输出8193就可以了
代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int s=0;
for(int i=1; i<=9; i++)//三位数
{
for(int j=0; j<=9; j++)
{
for(int k=0; k<=9; k++)
{
if(i>j&&k>j)
s++;
}
}
}
for(int i=1; i<=9; i++)//四位数
{
for(int j=0; j<=9; j++)
{
for(int k=0; k<=9; k++)
{
for(int a=0; a<=9; a++)
{
if((i>j&&k>j&&a>k)||(i>j&&j>k&&a>k))
s++;
}
}
}
}
for(int i=1; i<=9; i++)//五位数
{
for(int j=0; j<=9; j++)
{
for(int k=0; k<=9; k++)
{
for(int a=0; a<=9; a++)
{
for(int b=0; b<=9; b++)
{
if((i>j&&k>j&&a>k&&b>a)||(i>j&&j>k&&k>a&&b>a)||(i>j&&j>k&&a>k&&b>a))
s++;
}
}
}
}
}
printf("%d\n",s);
return 0;
}