题目描述
首先来定义一个规则:设一个整数a,它的长度(即数字个数)为n,如果组成a的数字恰好均为[1,n]之间的数字且每个数字都只出现一次,那么称a为完全整数。例如3412就是一个完全整数,而1245则不是。现在给你一个整数,请你来判断一下这个整数是不是完全整数。
输入
第一行一个整数t(0<t<=2000),代表测试数据的组数。
接下来是t组测试数组,每组测试数据一个整数a,判断整数a是不是完全整数。
测试数据保证a不为负数且长度不大于8。
输出
对于每组测试数据,如果这个整数是完全整数,则输出一个"YES",否则输出一个"NO"。
每个输出占一行。
样例输入 Copy
2
3412
1245
样例输出 Copy
YES
NO
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int a;
cin>>a;
if(a==0)
cout<<"NO"<<endl;
else
{
int c[10]={0};
int l=0,b;
while(a)
{
b=a%10;
c[b]++;
a/=10;
l++;
}
int flag=0;
for(int i=1;i<=l;i++)
{
if(c[i]!=0)
flag=0;
else
{
flag=1;
break;
}
}
if(flag==0)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
return 0;
}