zoukankan      html  css  js  c++  java
  • 判断一个数是否有重复的数字?

    从键盘上输入一个整数,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("重复了
    ");
                break; 
            }
            bs[n] = 1;
            x/=10;
        
        } 

    while (x); if ( 0==x ) { printf("没有重复 "); } return 0;

     

    do
    {
    ........

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

    do while 循环的图片示意图:

  • 相关阅读:
    P1219 N皇后(位运算&普通dfs)
    P1434 滑雪(记忆化搜索)
    P1118 数字三角形(技巧)
    P1162 填涂颜色
    P1141 01迷宫
    P2685抓牛(bfs)
    WordPress ‘crypt_private()’方法远程拒绝服务漏洞
    java获取网页源码
    tomcat报错: Error parsing HTTP request header
    空指针异常的原因
  • 原文地址:https://www.cnblogs.com/CCMMBN/p/5383746.html
Copyright © 2011-2022 走看看