Given string **str** representing a number and an integer **K**, the task is to find the largest number that can be formed by changing at most **K** digits in the given number.

**Examples:**

Input:str = “569431”, K = 3Output:999931

Replace first, second and fourth digits with 9.Input:str = “5687”, K = 2Output:9987

**Approach:** In order to get the maximum number possible, leftmost digits must be replaced with 9s. For every digit of the number starting from the leftmost digit, if it is not already 9 and K is greater than 0 then replace it with 9 and decrement K by 1. Repeat these steps for every digit while K is greater than 0. Finally, print the updated number.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <iostream>` `using` `namespace` `std;` `// Function to return the maximum number` `// that can be formed by changing` `// at most k digits in str` `string findMaximumNum(string str, ` `int` `n, ` `int` `k)` `{` ` ` `// For every digit of the number` ` ` `for` `(` `int` `i = 0; i < n; i++) {` ` ` `// If no more digits can be replaced` ` ` `if` `(k < 1)` ` ` `break` `;` ` ` `// If current digit is not already 9` ` ` `if` `(str[i] != ` `'9'` `) {` ` ` `// Replace it with 9` ` ` `str[i] = ` `'9'` `;` ` ` `// One digit has been used` ` ` `k--;` ` ` `}` ` ` `}` ` ` `return` `str;` `}` `// Driver code` `int` `main()` `{` ` ` `string str = ` `"569431"` `;` ` ` `int` `n = str.length();` ` ` `int` `k = 3;` ` ` `cout << findMaximumNum(str, n, k);` ` ` `return` `0;` `}` |

## Java

`// Java implementation of the approach` `class` `GFG` `{` ` ` `// Function to return the maximum number` ` ` `// that can be formed by changing` ` ` `// at most k digits in str` ` ` `static` `StringBuilder findMaximumNum(StringBuilder str,` ` ` `int` `n, ` `int` `k)` ` ` `{` ` ` ` ` `// For every digit of the number` ` ` `for` `(` `int` `i = ` `0` `; i < n; i++)` ` ` `{` ` ` ` ` `// If no more digits can be replaced` ` ` `if` `(k < ` `1` `)` ` ` `break` `;` ` ` ` ` `// If current digit is not already 9` ` ` `if` `(str.charAt(i) != ` `'9'` `)` ` ` `{` ` ` ` ` `// Replace it with 9` ` ` `str.setCharAt(i, ` `'9'` `);` ` ` ` ` `// One digit has been used` ` ` `k--;` ` ` `}` ` ` `}` ` ` `return` `str;` ` ` `}` ` ` ` ` `// Driver code` ` ` `public` `static` `void` `main (String [] args)` ` ` `{` ` ` `StringBuilder str = ` `new` `StringBuilder(` `"569431"` `);` ` ` ` ` `int` `n = str.length();` ` ` `int` `k = ` `3` `;` ` ` ` ` `System.out.println(findMaximumNum(str, n, k));` ` ` `}` `}` `// This code is contributed by ihritik` |

## Python3

`# Python3 implementation of the approach` `# Function to return the maximum number` `# that can be formed by changing` `# at most k digits in str` `def` `findMaximumNum(st, n, k):` ` ` `# For every digit of the number` ` ` `for` `i ` `in` `range` `(n):` ` ` `# If no more digits can be replaced` ` ` `if` `(k < ` `1` `):` ` ` `break` ` ` `# If current digit is not already 9` ` ` `if` `(st[i] !` `=` `'9'` `):` ` ` `# Replace it with 9` ` ` `st ` `=` `st[` `0` `:i] ` `+` `'9'` `+` `st[i ` `+` `1` `:]` ` ` `# One digit has been used` ` ` `k ` `-` `=` `1` ` ` `return` `st` `# Driver code` `st ` `=` `"569431"` `n ` `=` `len` `(st)` `k ` `=` `3` `print` `(findMaximumNum(st, n, k))` `# This code is contributed by` `# divyamohan123` |

## C#

`// C# implementation of the approach` `using` `System;` `using` `System.Text;` `class` `GFG` `{` ` ` `// Function to return the maximum number` ` ` `// that can be formed by changing` ` ` `// at most k digits in str` ` ` `static` `StringBuilder findMaximumNum(StringBuilder str,` ` ` `int` `n, ` `int` `k)` ` ` `{` ` ` ` ` `// For every digit of the number` ` ` `for` `(` `int` `i = 0; i < n; i++)` ` ` `{` ` ` ` ` `// If no more digits can be replaced` ` ` `if` `(k < 1)` ` ` `break` `;` ` ` ` ` `// If current digit is not already 9` ` ` `if` `(str[i] != ` `'9'` `)` ` ` `{` ` ` ` ` `// Replace it with 9` ` ` `str[i] = ` `'9'` `;` ` ` ` ` `// One digit has been used` ` ` `k--;` ` ` `}` ` ` `}` ` ` `return` `str;` ` ` `}` ` ` ` ` `// Driver code` ` ` `public` `static` `void` `Main ()` ` ` `{` ` ` `StringBuilder str = ` `new` `StringBuilder(` `"569431"` `);` ` ` ` ` `int` `n = str.Length;` ` ` `int` `k = 3;` ` ` ` ` `Console.WriteLine(findMaximumNum(str, n, k));` ` ` `}` `}` `// This code is contributed by ihritik` |

## Javascript

`<script>` ` ` `// JavaScript implementation of the approach` ` ` `// Function to return the maximum number` ` ` `// that can be formed by changing` ` ` `// at most k digits in str` ` ` `function` `findMaximumNum(str, n, k) {` ` ` `// For every digit of the number` ` ` `for` `(` `var` `i = 0; i < n; i++) {` ` ` `// If no more digits can be replaced` ` ` `if` `(k < 1) ` `break` `;` ` ` `// If current digit is not already 9` ` ` `if` `(str[i] !== ` `"9"` `) {` ` ` `// Replace it with 9` ` ` `str[i] = ` `"9"` `;` ` ` `// One digit has been used` ` ` `k--;` ` ` `}` ` ` `}` ` ` `return` `str.join(` `""` `);` ` ` `}` ` ` `// Driver code` ` ` `var` `str = ` `"569431"` `;` ` ` `var` `n = str.length;` ` ` `var` `k = 3;` ` ` `document.write(findMaximumNum(str.split(` `""` `), n, k));` ` ` `</script>` |

**Output:**

999931

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend live classes with industry experts, please refer **Geeks Classes Live**