怎样用C语言判断一个整数中有没有重复的数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用C语言判断一个整数中有没有重复的数相关的知识,希望对你有一定的参考价值。
直接手打,没有调试,你看看吧,思路很简单
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)的复杂度就可以实现的
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; // 这里说明了 没有重复的数值
参考技术A 要代码还是解决方法?,解决方法是将它转换为字符串,然后从第一个开始和后面的对比, 参考技术B int Array[]=0,1,2,3,4,5,2;
int nCount = sizeof(Array)/sizeof(int);
bool bIsExisted = false;
for(int j=0; j<nCount;j++)
for(int k=j+1; k<nCount;k++)
if(Array[n]==Array[j])
bIsExisted = true;
break;
bIsExisted ?break:continue;
assert(bIsExisted==true);
在C语言中,怎样判断两个整型的数相等
参考技术A if(a==b)printf(“a,b相等”); 参考技术B if (a==b) 这样判断a=b
以上是关于怎样用C语言判断一个整数中有没有重复的数的主要内容,如果未能解决你的问题,请参考以下文章