判断一个整数中是否有重复数字(0~9),该数字不以0开头--------方法2

/*
  题目:判断一个整数中是否有重复数字(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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值