Given a number n, swap any two digits of the number so that the resulting number is greater than the number n. If it's not possible then print -1. Let's see an example.Input12345Output12354We have swapped the digits 4 and 5. And we got the higher number with one swap.AlgorithmIt's not possible to form the number if the digits of the number are in decreasing order.Find the index of the digit from the right of the number which is less than the last digit.Find the index of the digit which is greater than the previous digit and less than all digits.Swap ... Read More
Given N, A, and B. Find the number which is greater than N with the same number of A and B digits. Let's see an example.N = 1234 A = 2 B = 3We need to check for every possibility of the given number of digits. There are two digits to form the number. And each digit count in the number should be the same.AlgorithmInitialise A, B, and N.Write a recursive function.Check whether the current number is greater than N and has equal number of A and B digits.Return the number if the above condition satisfies.Add the digit A to the result.Add the digit B ... Read More
We are given a number n, we have to find the number that is greater than n with one more set bit than n in its binary representation.The digit 1 in the binary representation is called set bit.Let's see an example.Input124Output125AlgorithmInitialise the number n.Write a function get the count of number of set bits.Initialise the iterative variable with n + 1.Write an infinite loop.Check for the number of set bits for numbers greater than n.Return the number when you find it.ImplementationFollowing is the implementation of the above algorithm in C++#include using namespace std; int getSetBitsCount(int n) { int count ... Read More
The next greater element is the element that is first greater element after it. Let's see an example.arr = [4, 5, 3, 2, 1]The next greater element for 4 is 5 and the next greater element for elements 3, 2, 1 is -1 as there is no greater element after them.AlgorithmInitialise the array with random numbers.Initialise a stack.Add first element to the stack.Iterate through the element of the array.If the stack is empty, add the current element to the stack.While the current element is greater than the top element of the stack.Print the top element with the next greater element ... Read More
The next greater element is the element that is first greater element after it. Let's see an example.arr = [4, 5, 3, 2, 1]The next greater element for 4 is 5 and the next greater element for elements 3, 2, 1 is -1 as there is no greater element after them.AlgorithmInitialise the array with random numbers.Initialise a stack and an array.Iterate from the end of the array.Remove the elements from the stack until it empty and the top element is less than or equal to the current element.If the stack is empty, then there is no next greater element. So ... Read More
The newman-shanks-williams prime sequence is as follows1, 1, 3, 7, 17, 41...If we generalise the sequence items, we geta0=1 a1=1 an=2*a(n-1)+a(n-2)AlgorithmInitialise the number n.Initialise the first numbers of the sequence 1 and 1.Write a loop that iterates till n.Compute the next number using the previous numbers.Update the previous two numbers.Return the last number.ImplementationFollowing is the implementation of the above algorithm in C++#include using namespace std; int getNthTerm(int n) { if(n == 0 || n == 1) { return 1; } int a = 1, b = 1; for(int i = 3; i
The nesbitt's inequality is (a/(b + c)) + (b/(c + a)) + (c/(a + b))>= 1.5, a > 0, b > 0, c > 0Given three number, we need to check whether the three numbers satisfy Nesbitt's inequality or not.We can test whether three number are satisfied nesbitt's inequality or not. It's a straightforward program.AlgorithmInitialise three numbers a, b, and c.Compute the values of each part from the equation.Add them all.If the total sum is greater than or equal to 1.5 then it satisfies the Nesbitt's inequality else it is not satisfied.ImplementationFollowing is the implementation of the above algorithm in ... Read More
Lexical Analysis can be designed using Transition Diagrams.Finite Automata (Transition Diagram) − A Directed Graph or flowchart used to recognize token.The transition Diagram has two parts −States − It is represented by circles.Edges − States are connected by Edges Arrows.Example − Draw Transition Diagram for "if" keyword.To recognize Token ("if"), Lexical Analysis has to read also the next character after "f". Depending upon the next character, it will judge whether the "if" keyword or something else is.So, Blank space after "if" determines that "If" is a keyword."*" on Final State 3 means Retract, i.e., control will again come to previous ... Read More
A compiler is a computer program that converts source code written in a computer language (the source language) into another computer language (the target language, providing having a binary form referred to as object code). The best reason for inadequate to convert source code is to create an executable code.The compiler is generally used for programs that translate source code from a high-level programming language to a lower-level language (e.g., assembly language or machine code). A program that translates from a low-level language to a higher level one is a decompiler.A program that translates between high-level languages is generally known ... Read More
It is an approach for making a self-compiling compiler that is a compiler written in the source programming language that it determine to compile. A bootstrap compiler can compile the compiler and thus you can use this compiled compiler to compile everything else and the future versions of itself.Uses of BootstrappingThere are various uses of bootstrapping which are as follows −It can allow new programming languages and compilers to be developed starting from actual ones.It allows new features to be combined with a programming language and its compiler.It also allows new optimizations to be added to compilers.It allows languages and ... Read More
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP