Maximum 69 Number

Given a positive integer number consisting only of digits 6 and 9.
Find the maximum number you can get by changing at most one digit (6 becomes 9, and 9 becomes 6).

Example 1:

Input: num = 9669
Output: 9969

Approach

Java

import java.util.ArrayList;
import java.util.List;

public class Maximum69 {
    public static void main(String[] args) {
        int num = 6969;
        System.out.println(maximum69Number(num));
    }

    // maximum 69 number
    public static int maximum69Number(int num) {
        // convert digit to array
        List<Integerdigit = digit(num);
        int done = 0;
        int fnum = 0;
        // iterate digit to 0
        for (int i = digit.size() - 1; i >= 0; i--) {
            // if element is 6 then replace 9
            if (digit.get(i) != 9 && done == 0) {
                digit.remove(i);
                digit.add(i, 9);
                done++;
            }
            // calculate number
            fnum = fnum * 10 + digit.get(i);
        }
        return fnum;
    }

    // number to digit array
    public static List<Integerdigit(int num) {
        List<Integerdigit = new ArrayList<Integer>();
        while (num != 0) {
            digit.add(num % 10);
            num = num / 10;
        }
        return digit;
    }
}

C++

#include <bits/stdc++.h>
using namespace std;

//function to find the maximum
//69 
int maximum69Number (int num
{
        string str="";
        while(num)
        {
            int x=num%10;
            str+=to_string(x);
            num=num/10;
        }
       reverse(str.begin(),str.end());
       for(int i=0;i<str.size();i++)
              if(str[i]=='6')
              {
                  str[i]='9';
                  break;
              }
      stringstream f(str);
        int maximum=0;
        f>>maximum;
        return maximum;
int main()
{
    int num=9669;
    int maximum=maximum69Number(num);
    cout<<maximum<<"\n";
    return 0;


No comments:

Post a Comment