首页 > 后端开发 > C++ > 正文

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

WBOY
发布: 2023-08-29 13:25:06
转载
1460 人浏览过

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

给定一个数字 N,我们必须计算其最大奇数位的数字。如果没有奇数位,则打印 -1。

就像我们用“153”初始化 N 一样,这个数字中最大的奇数位是 5,所以结果将是 153 与 5 的乘积,即 153 * 5 = 765 和如果数字没有像 246 这样的奇数,那么输出必须是 -1.

输入 - N = 198

输出 - 1782

解释 - 198 * 9 = 1782

输入 - N = 15382

输出 − 76910

解释 − 15382 * 5 = 76910

解决问题的方法如下 -

  • 取输入N.

  • 遍历每一位数字并寻找奇数位

  • 找到最大的奇数元素。

  • 与原数N乘积最大的off元素。

  • 如果没有奇数元素更新结果为-1。

  • 返回结果。

算法

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
登录后复制

示例

 练习

#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
登录后复制

以上是N与C中最大的奇数位数的乘积的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!