https://whatsapp.com/channel/0029VbCS7OXJJhzbe6bZcR1L
this site is to help students to learn coding in java platform and qbasic platform. all programs are ICSE and ISC level. Java programs java python Python programs
Infix postfix prefix
import java.util.Stack;
import java.util.Scanner;
public class ExpressionConverter {
// Function to return precedence of operators
static int precedence(char ch) {
switch (ch) {
case '+':
case '-':
return 1;
case '*':
case '/':
return 2;
case '^':
return 3;
}
return -1; // For non-operators
}
// Function to convert infix to postfix
static String infixToPostfix(String expression) {
StringBuilder result = new StringBuilder();
Stack<Character> stack = new Stack<>();
for (int i = 0; i < expression.length(); i++) {
char c = expression.charAt(i);
// If the character is an operand, add it to the output
if (Character.isLetterOrDigit(c)) {
result.append(c);
}
// If the character is '(', push it to stack
else if (c == '(') {
stack.push(c);
}
// If the character is ')', pop from stack to output until '(' is encountered
else if (c == ')') {
while (!stack.isEmpty() && stack.peek() != '(') {
result.append(stack.pop());
}
if (!stack.isEmpty() && stack.peek() == '(') {
stack.pop(); // Discard the '('
}
}
// If an operator is encountered
else {
// Pop operators with higher or equal precedence from the stack
while (!stack.isEmpty() && precedence(c) <= precedence(stack.peek())) {
result.append(stack.pop());
}
stack.push(c);
}
}
// Pop all the remaining operators from the stack
while (!stack.isEmpty()) {
result.append(stack.pop());
}
return result.toString();
}
// Function to convert infix to prefix
static String infixToPrefix(String expression) {
// The algorithm for infix to prefix is:
// 1. Reverse the infix expression.
// 2. Swap '(' and ')' in the reversed expression.
// 3. Convert the modified expression to postfix.
// 4. Reverse the resulting postfix expression to get the prefix expression.
StringBuilder reversedInfix = new StringBuilder(expression).reverse();
for (int i = 0; i < reversedInfix.length(); i++) {
char c = reversedInfix.charAt(i);
if (c == '(') {
reversedInfix.setCharAt(i, ')');
} else if (c == ')') {
reversedInfix.setCharAt(i, '(');
}
}
// Convert the modified string to postfix
String postfixForReversed = infixToPostfix(reversedInfix.toString());
// Reverse the result to get prefix
return new StringBuilder(postfixForReversed).reverse().toString();
}
// Main method to test the conversion
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter an infix expression (use single letters/digits and operators, no spaces, e.g., a+b*c): ");
String infixExpression = scanner.nextLine();
String postfix = infixToPostfix(infixExpression);
String prefix = infixToPrefix(infixExpression);
System.out.println("Infix Expression: " + infixExpression);
System.out.println("Postfix Expression: " + postfix);
System.out.println("Prefix Expression: " + prefix);
}
}
Mersenne Number
Write a program to check if a number is a Mersenne number or not.
In mathematics, a Mersenne number is a number that can be written in the form M(n) = 2n − 1 for some integer n.
The first four Mersenne primes are 3, 7, 31, and 127
Test Data
Input a number: 127
Sample Solution:
Java Code:
import java.util.Scanner;
import java.math.BigInteger;
public class Example22 {
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
System.out.print("Input a number: ");
int n = in.nextInt();
int n1 = n + 1;
int power = 0;
int ans = 0;
for(int i=0;;i++)
{
power=(int)Math.pow(2,i);
if(power>n1)
{
break;
}
else if(power==n1)
{
System.out.println(n+" is a Mersenne number.");
ans=1;
}
}
if(ans==0)
{
System.out.println(n+" is not a Mersenne number.");
}
}
}
Sample Output:
Input a number: 127 127 is a Mersenne number.
Ramanujan Numbers
Write a Java program to find any number between 1 and n that can be expressed as the sum of two cubes in two (or more) different ways.
Here are some examples of Ramanujan numbers :
1729 = 1^3 + 12^3 = 9^3 + 10^3
* 10000
1729 = 1^3 + 12^3 = 9^3 + 10^3
4104 = 2^3 + 16^3 = 9^3 + 15^3
* 100000
1729 = 1^3 + 12^3 = 9^3 + 10^3
4104 = 2^3 + 16^3 = 9^3 + 15^3
13832 = 2^3 + 24^3 = 18^3 + 20^3
39312 = 2^3 + 34^3 = 15^3 + 33^3
46683 = 3^3 + 36^3 = 27^3 + 30^3
32832 = 4^3 + 32^3 = 18^3 + 30^3
40033 = 9^3 + 34^3 = 16^3 + 33^3
20683 = 10^3 + 27^3 = 19^3 + 24^3
65728 = 12^3 + 40^3 = 31^3 + 33^3
64232 = 17^3 + 39^3 = 26^3 + 36^3
Sample Solution:
Java Code:
import java.util.Scanner;
public class Example21 {
public static void main(String[] args) {
int n = 100000;
// for each a, b, c, d, check whether a^3 + b^3 = c^3 + d^3
for (int a = 1; a <= n; a++) {
int a3 = a*a*a;
if (a3 > n) break;
for (int b = a; b <= n; b++) {
int b3 = b*b*b;
if (a3 + b3 > n) break;
for (int c = a + 1; c <= n; c++) {
int c3 = c*c*c;
if (c3 > a3 + b3) break;
for (int d = c; d <= n; d++) {
int d3 = d*d*d;
if (c3 + d3 > a3 + b3) break;
if (c3 + d3 == a3 + b3) {
System.out.print((a3+b3) + " = ");
System.out.print(a + "^3 + " + b + "^3 = ");
System.out.print(c + "^3 + " + d + "^3");
System.out.println();
}
}
}
}
}
}
}
Sample Output:
1729 = 1^3 + 12^3 = 9^3 + 10^3 4104 = 2^3 + 16^3 = 9^3 + 15^3 13832 = 2^3 + 24^3 = 18^3 + 20^3 39312 = 2^3 + 34^3 = 15^3 + 33^3 46683 = 3^3 + 36^3 = 27^3 + 30^3 32832 = 4^3 + 32^3 = 18^3 + 30^3 40033 = 9^3 + 34^3 = 16^3 + 33^3 20683 = 10^3 + 27^3 = 19^3 + 24^3 65728 = 12^3 + 40^3 = 31^3 + 33^3 64232 = 17^3 + 39^3 = 26^3 + 36^3
Cyclic Number
WAP to check a number is cyclic number or not
class GFG {
// Function to generate all cyclic // permutations of a number static boolean isCyclic(long N) { // Count digits and check if all // digits are same long num = N; int count = 0; int digit = (int)(num % 10); boolean allSame = true; while (num > 0) { count++; if (num % 10 != digit) allSame = false; num = num / 10; } // If all digits are same, then // not considered cyclic. if (allSame == true) return false; // If counts of digits is even and // two halves are same, then the // number is not considered cyclic. if (count % 2 == 0) { long halfPower = (long)Math.pow(10, count / 2); long firstHalf = N % halfPower; long secondHalf = N / halfPower; if (firstHalf == firstHalf && isCyclic(firstHalf)) return false; } num = N; while (true) { // Following three lines generates a // circular permutation of a number. long rem = num % 10; long div = num / 10; num = (long)(Math.pow(10, count - 1)) * rem + div; // If all the permutations are checked // and we obtain original number exit // from loop. if (num == N) break; if (num % N != 0) return false; } return true; } // Driver code public static void main(String[] args) { long N = 142857; if (isCyclic(N)) System.out.print("Yes"); else System.out.print("No"); } } Join this Channel
https://whatsapp.com/channel/0029VbCS7OXJJhzbe6bZcR1L
-
Chapter 3 Arrays Class 10 - APC Understanding Computer Applications with BlueJ Tick the correct answer Question 1 Which of the following i...
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ...
-
Chapter 4 String Handling Class 10 - APC Understanding Computer Applications with BlueJ Fill in the blanks Question 1 concat() method is...