卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

N与C中最大的奇数位数的乘积

N与C中最大的奇数位数的乘积</p><p>

  • Take the input N.

  • Traverse every digit and look for odd digits

  • Find the largest odd element.

  • Product the largest off element with the original number N.

  • If there is no odd element update result with -1.

  • Return the result.

  • Algorithm

    Start
    In function int largestodd(int n)
       Step 1→ Declare and Initialize large as -1
       Step 2→ Loop While n > 0
          Set digit as n % 10
          If digit % 2 == 1 && digit > large then,
             Set large as digit
          Set n as n / 10
       Step 3→ Return large
    In function int findproduct(int n)
       Step 1→ Declare and Initialize large set largestodd(n)
       Step 2→ If large == -1 then,
          Return -1
       Step 3→ Return (n * large)
    In function int main()
       Step 1→ Initialize n as 15637
       Print the results from calling findproduct(n)
    Stop

    Example

    演示

    #include <stdio.h>
    int largestodd(int n){
       // If all digits are even then
       // we wil return -1
       int large = -1;
       while (n > 0) {
          // checking from the last digit
          int digit = n % 10;
          // If the current digit is odd and
          // is greater than the large
          if (digit % 2 == 1 && digit > large)
             large = digit;
          n = n / 10;
       }
       // To return the maximum
       // odd digit of n
       return large;
    }
    int findproduct(int n){
       int large = largestodd(n);
       // If there are no odd digits in n
       if (large == -1)
          return -1;
       // Product of n with its largest odd digit
       return (n * large);
    }
    int main(){
       int n = 15637;
       printf("%d</p><p>", findproduct(n));
       return 0;
    }

    输出

    如果运行上述代码,将会生成以下输出−

    109459

    卓越飞翔博客
    上一篇: C程序计算3D空间中三个点之间的距离
    下一篇: 使用C++打印出n的所有因数的查询
    留言与评论(共有 0 条评论)
       
    验证码:
    隐藏边栏