栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言:如何判断任意数中的是否有重复的数?

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言:如何判断任意数中的是否有重复的数?

如何判断任意一个数中时候有重复的数?
例如输入12344,则可判断有重复的数字4,如果输入12345,则没有重复的数。
那如何来实现呢?
我之前的是利用数组来判断,即将12345拆分成1、2、3、4、5,然后利用for循环对拆分出的数进行判断即可。但是这样就有点麻烦了,而且还要根据输入的长度去重新调整数组的长度和 for 循环。那有什么简化的方法呢?

  1. 假如输入的数是:11345
  2. 定义一个长为10的bool数组
  3. 在while循环中利用求余%算出最后一位数,并将其作为下标修改对应位置的布尔值为真,如果说有重复的数,怎么触发if语句,跳出整个循环。
    程序原理如下图所示:

代码如下:

#include
#include
int main(){
	bool digit_seen[10] = {false};
	int digit;
	long n;
	printf("Enter a number: ");
	scanf("%ld",&n);
	while(n>0){
		digit = n%10;
		if(digit_seen[digit]){
			break;
		}
		digit_seen[digit] = true;
		n/=10;
	}
	if(n>0){
		printf("Repeated digitn");
	}else{
		printf("No repeated digitn");
	}
	return 0;
}

这个我不知道该怎么才能更好的表达清楚,但心里却是清楚是咋回事的,希望有缘人看到了别放弃,多想想即可。

与君共勉
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/997413.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号