怎样用C语言判断一个整数中有没有重复的数
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 19:59:05
怎样用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; // 这里说明了 没有重复的数值
}
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; // 这里说明了 没有重复的数值
}