判断一个整数中是否有重复数字(0~9),该数字不以0开头--------方法2
来源:互联网 发布:写轻小说的软件 编辑:程序博客网 时间:2024/06/05 08:10
/* 题目:判断一个整数中是否有重复数字(0~9),该数字不以0开头 方法2:利用函数将数字从低位(个位)到高位进行分解,对应放到整型数组中 利用双重循环判断分解得到的各个位上的数字是否相等,如果相等,函数返回false,表示要判断的整数中有重复数字 */#include<iostream> #include<cstring>using namespace std; bool checkNum(int n){ int num[11],i,j,p=n,count=0; //用数组元素num[0]~num[9] 存放n分解得到的高到低位上的数字 i=1; while(p) //将要判断的数依次分解别放到数组num中num[1]~num[10]分别存放高到低位上的数字 { num[i++]=p%10; p/=10; } count=i-1; //count用来记录要判断的整数个数 for(i=1;i<=count-1;i++) //用双循环判断分解得到的各个位上的数字是否相等,如果相等,函数返回false for(j=i+1;j<=count;++j) if(num[i]==num[j]) //判断是否是重复数字 return false; return true;} int main(){ int digit_10; cout<<"请输入10位数以内的整数:"; while(cin>>digit_10&&digit_10<9999999999) { if(checkNum(digit_10)) cout<<"此数中没有重复数字"<<endl; else cout<<"此数中存在重复数字"<<endl; cout<<"请输入10位数以内的整数"; } return 0;}