判断一个整数中是否有重复数字(0~9),该数字不以0开头--------方法1
2013-05-16 08:20
495 查看
/* 题目:判断一个整数中是否有重复数字(0~9),该数字不以0开头 方法1:利用函数将数字从低位(个位)到高位进行分解,每分解一位,判断该数是否在0~9中出现, 如果从未出现过该位数字,则将该数字下标对应字符设置为'x',表示该数字已经出现过。 如果下次得到的另一个位的数为数字下标对应的字符为'x',表示此位数字再次出现,则返回false, 表示这个整数中有重复数字。 */ #include<iostream> #include<cstring> using namespace std; bool checkNum(int n){ char arr[]="0123456789"; //数组下标整数值对应对应的整数字符 do{ if(arr[n%10]<='9') //此位上的数是0~9的数,且从未出现过 { arr[n%10]='x'; //标记对应数字为已出现过,为'x' }else{ //第二次出现了 return false; } n/=10; //从个位开始循环判断各个位上数字 }while(n!=0); 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; }
#include<iostream> #include<cstring> using namespace std; bool checkNum(int n){ int arr[]={0,1,2,3,4,5,6,7,8,9}; //数组下标整数值对应对应的整数 do{ if(arr[n%10]>=0&&arr[n%10]<=9) //此位上的数是0~9的数,且从未出现过 { arr[n%10]=-1; //标记对应数字为已出现过,将数组元素值改为-1 }else{ //第二次出现了 return false; } n/=10; //从个位开始循环判断各个位上数字 }while(n!=0); 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; }
相关文章推荐
- 判断一个整数中是否有重复数字(0~9),该数字不以0开头--------方法2
- 判断一个整数数组中是否有重复数字出现的O(n)时间复杂度算法
- 判断一个string是否以数字开头
- 给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
- JS判断一个数组中是否有重复值的三种方法
- JS判断一个数组中是否有重复值的三种方法
- JS判断一个数组中是否有重复值的三种方法 .
- 如何判断一个整数数组中是否有重复元素
- 【C#】一个方法判断整数是否是2的N次方
- (六)一个判断整形数组中是否有重复数字的简单算法
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- 如何判断一个整数数组中是否有重复元素
- JS判断一个数组中是否有重复值的三种方法
- C语言--判断输入的整数中数字是否有重复
- 判断一个数是否有重复数字
- C语言编程判断一个数是否为整数的两种常用方法
- 判断一个整数是否是2的N次幂实现方法
- python 一个简单的依靠文件来判断key是否重复的方法
- (转)判断一个字符串是否全是数字的多种方法及其性能比较(C#实现