作业帮 > 综合 > 作业

怎样用C语言判断一个整数中有没有重复的数

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 19:59:05
怎样用C语言判断一个整数中有没有重复的数
怎样用C语言判断一个整数中有没有重复的数
直接手打,没有调试,你看看吧,思路很简单

bool hehe(int sum)
{
int a[10]={0};   //  弄个数组,把0-9都存起来
//假设你的数字是num
while(sum)
{
    int s = sum%10;   //  这就能获取最小的一位的数字
    a[s]++;
   bool flag = find(a,10);
  if(!bool)   
     return true;    //  不好意思,发现了又重复的数字,直接返回结果
   s/=10;
}
return false;     //  这里说明了 没有重复的数值
}
//  再弄个函数,检测出现的次数
bool find(int a[],int n)
{
    for(int i=0;i<n;i++)
    {
        if(a[i]==1 || a[i]==0)  continue;
       else
            return   false;
   }
   return true;
  //  返回真的,表示暂时没有重复的值
}
 //  这是之前的代码,突然想到完全没必要这个,在o(n)的复杂度就可以实现的

bool hehe(int sum)
{
int a[10]={0};   //  弄个数组,把0-9都存起来
//假设你的数字是num
while(sum)
{
    int s = sum%10;   //  这就能获取最小的一位的数字
    a[s]++;
   //  修改的地方在这里!至于那下面的函数则完全可以不用,这种方法,有点类似于hash的想法
   if(a[s]>1)   return true;
   /*
  if(!bool)   
     return true;    //  不好意思,发现了又重复的数字,直接返回结果
     */
   s/=10;
}
return false;     //  这里说明了 没有重复的数值
}