美文网首页
求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制

求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制

作者: 蓝色忧郁8533 | 来源:发表于2022-05-28 10:47 被阅读0次

    原始题目:求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制数10的最小值

    可以将题目拆分为三个子函数:是二进制回文、是八进制回文、是十进制回文
    判断是几进制回文的方式相同,只是里面的参数不同,所以题目可以拆分成如下三个子题目

    子题目:已知一个十进制数字,判断这个数字是否是十进制回文数字

    int JudgeCircle(int t)
    {
     int m = 0, n = 0, q = 0;
     m = t;
     while (m != 0)
     {
      q = m % 10;
      n = n * 10 + q;
      m = m / 10;
     }
     return n == t ? 1 : 0;
    }
    

    子题目:已知一个十进制数字,判断这个数字是否是二进制回文数字

    int BinaryCircle(int t)
    {
      int m = 0, n = 0, q = 0;
      m = t;
      while (m != 0)
      {
       q = m % 2;
       n = n * 2 + q;
       m = m / 2;
      }
      return n == t ? 1 : 0;
    }
    

    子题目:已知一个十进制数字,判断这个数字是否是八进制回文数字

    int OctalCircle(int t)
    {
      int m = 0, n = 0, q = 0;
      m = t;
      while (m != 0)
      {
       q = m % 8;
       n = n * 8 + q;
       m = m / 8;
      }
      return n == t ? 1 : 0;
    }
    

    另:求一个十进制数字有多少位

    int CountBit(int t)
    {
      int n = 0;
      while (t != 0)
      {
       n++;
       t = t / 10;
      }
      return n;
    }
    

    子题目:将一个十进制字符串转换为二进制字符串、八进制字符串

    函数优化,可以编写成下面的形式,一个函数同时计算是否能是十、八、二进制的回文数

    int Func(int n,int t)
    {
        int a = 0;
        int b = n;
        int c = 0;
        while (b != 0)
        {
            a = b % t;
            c = c * t + a;
            b = b / t;
        }
    
        if (n == c)
            return 1;
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制

          本文链接:https://www.haomeiwen.com/subject/bbjiprtx.html