判断一个数是否有重复的数字?

从键盘上输入一个整数,n=x%10,取余数,得到的结果有2种情况:

1、int n=x%10  第一次用 do while 循环,输入的数是12245, n=5; 这个时候:bs[5]=1 ; x=1224

        第二次: x=1224, n=1224%10=4(取余数得到结果4) ,    这个时候:bs[4]=1;  x=122

        第三次: x=122 , n=122%10=2(取余数得到结果是2),     这个时候:  bs[2]=1;  x=12

        第四次: x=12,    n=12 % 10=2(取x的余数)      这个时候:bs[2]=1;  x=1

        因为第四次判断满足条件:bs[2]==1  打印重复了,执行break,然后跳出循环;

           

 //从键盘上输入一个数,如12245,判断这个整数中的数字是否有重复

    int x;
    printf("请输入一个数:");
    scanf("%d",&x);
    bool bs[10]={0};
    do {
        int n=x%10;
        if ( bs[n] ==1 ) {
            printf("重复了\n");
            break;
        }
        bs[n] = 1;
        x/=10;

    } 

    while (x);
    if ( 0==x ) {
        printf("没有重复\n");

    }

    return 0;
do{........

}while(   )先执行语句,在判断括号里的语句,是真再循环,假怎退出循环。while(   ){........}是先判断真假再执行,这两个语句的区别是,do  while不管真假至少执行一次,while要第一次就为假就不会执行

do while 循环的图片示意图:
时间: 2024-08-06 11:53:24

判断一个数是否有重复的数字?的相关文章

数组中重复的数字问题

如题所述,这类问题出现的频率太高了,有必要进行归纳归纳~ --->给定一个长度为N的数组,其中每个元素的取值范围都是1到N.判断数组中是否有重复的数字.(原数组不必保留) 方法1.对数组进行排序(快速,堆),然后比较相邻的元素是否相同.时间复杂度为O(nlogn),空间复杂度为O(1). 方法2.使用bitmap方法.定义长度为N/8的char数组,每个bit表示对应数字是否出现过.遍历数组,使用 bitmap对数字是否出现进行统计.时间复杂度为O(n),空间复杂度为O(n). 方法3.遍历数组

正则判断输入的字符(英文、数字、空格、其他)的个数

1 /** 2 * 3 * 类 描 述: 正则判断输入的字符(英文.数字.空格.其他)的个数 4 * 作 者: 赵 鹏 5 */ 6 public class RegularJudgeCharacter { 7 8 public static void main(String[] args) { 9 10 String arg = "safd415 ^&*^*^$# "; 11 12 //将string字符串转义为char数组 13 char[] charArray = arg

在0~N个数字中,取指定个数的不重复数字,要求这些数字的和为指定值,求所有结果

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace ConsoleApp1 { 7 class Program { 8 static void Main(string[] args) { 9 10 // 防止出现随机值无法组合 11 while (ResDic.Count == 0) { 12 13 Con = 10; 14 // 初

剑指offer之【数组中重复的数字】

题目: 数组中重复的数字 链接: https://www.nowcoder.com/practice/623a5ac0ea5b4e5f95552655361ae0a8?tpId=13&tqId=11203&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不

Java判断一个数是不是快乐数

快乐数的定义: 快乐数(happy number)有以下的特性: 在给定的进位制下,该数字所有数位(digits)的平方和,得到的新数再次求所有数位的平方和,如此重复进行,最终结果必为1. 以十进制为例: 2 8 → 22+82=68 → 62+82=100 → 12+02+02=1 3 2 → 32+22=13 → 12+32=10 → 12+02=1 3 7 → 32+72=58 → 52+82=89 → 82+92=145 → 12+42+52=42 → 42+22=20 → 22+02=

50.数组中重复的数字

题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2. 题目解答 public class Solution { // Parameters: // numbers: an array of integers // length: the length of array num

剑指offer:数组中重复的数字

题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2. # -*- coding: utf-8 -*- # @Time : 2019-04-15 17:31 # @Author : Jayce Wong # @ProjectName : job # @FileName : du

剑指 Offer —— 数组中重复的数字

数组中的重复数字 题目描述 牛课网链接 长度为 n 的数组里,所有数字都在 0 到 n-1 的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 7 的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字 2 或者 3.(牛课网这里弄成「那么对应的输出是第一个重复的数字 2」了) A 简单实现思路 借助外部数组 b,原数组中的数字记为外部数组的下标,外部数组的值来存储这个数字出现的次数.原数组中

不修改数组找出重复的数字(c语言)

让人瑟瑟发抖的面试题... 来我们看一下题目在一个 长度为n+1的数组里的所有数字都在1~n的范围内,所以数组中至少有一个数字是重复的.请找出数组中任意一个重复的数字,但不能修改输入的数组.注意:时间复杂度O(n),空间复杂度O(1) 找出数组中重复的数字(c语言)怎么解决勒???分析:利用题目中元素处于1~n的范围,把元素分为两组,判断两组元素个数,如果大于范围,则重复的数字就在这个范围内.例如:1~3范围中有4个数,说明其中至少有一个重复的数字.按此二分下去,将会剩下一个数字有两个,最后输出