
Given a number N with we have to product the number with its largest odd digit. If there is no odd digit then print -1.
Like we have initialized N with “153” and the largest odd digit in this number is 5 so the result would be the product of 153 with 5 i.e. 153 * 5 = 765 and if the number has no odd digit like 246 then the output must be -1.
Input − N = 198
Output − 1782
Explanation − 198 * 9 = 1782
Input − N = 15382
Output − 76910
Explanation − 15382 * 5 = 76910
Approach used below is as follows to solve the problem −
Take the input N.
NITC企业智能营销系统4.0 标准版下载NITC企业智能营销系统V4.0是由杭州梁杉科技有限公司于2013年12月份上线的最新产品。系统建于2008年,由多位资深网站设计师与SEM整合营销大师倾力打造,截止目前均有10多年网络经验。该产品经历无数中小企业营销需求,不断完善,实属经典之作,国内屈指可数。
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)
StopExample
演示
#includeint 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 ", findproduct(n)); return 0; }
输出
如果运行上述代码,将会生成以下输出−
109459









