Lab 9  Solutions,  ESC101, 2004-2005 Semester-II


1.

import java.io.*;
import java.util.*;

public class SumPerm
{
    public int cnt;
    static int sum[];
   
    public void printPerm(int b)
    {
        int i;
        if (b == 0)
        {
           
            for (i = 0; i < cnt; i++)
                System.out.print(sum[i] + " ");
            System.out.print("\n");
            return;
        }
       
       
        for (i = b; i > 0; i--)
        {
            if (cnt > 0 && i > sum[cnt - 1])
                continue;
            sum[cnt++] = i;
            printPerm(b - i);
            cnt--;
        }
       
       
    }
   
    public static void main(String [] args)throws IOException
    {   
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
       
        System.out.println("Enter the number : ");
        String s = br.readLine();
        int max=Integer.parseInt(s);   
        sum=new int[max];
        SumPerm sumPerm=new SumPerm();
        sumPerm.printPerm(max);
    }
}




2.

import java.io.*;
import java.util.*;


public class Determinant
{
   
    public void input(int a[][])throws IOException
    {
        System.out.println("Enter your entries");
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
        for(int i=0;i<a.length;i++)
        {
            for(int j=0;j<a[0].length;j++)
            {
                System.out.print("Enter the entries: "); // prompt
                String s = br.readLine();   
                a[i][j]=Integer.parseInt(s);
            }
        }
    }
   
    int evalDet(int a[][],int row,int col)
    {
        int det=0;
        if(row == 2 || col == 2)
        {
            det=a[0][0]*a[1][1]-a[0][1]*a[1][0];
            return det;
        }
       
        int temp[][]=new int[row-1][col-1];
        int col1=0,sign=-1,det1=0;
       
        for(int i=0;i<col;i++)
        {
            for(int j=1,row1=0;j<row;j++,row1++)
            {     
                col1=0;
                for(int k=0;k<col;k++)
                 {
                    if(k==i)
                        continue;   
                    temp[row1][col1++]=a[j][k];
                }
               
            }   
            sign=sign*(-1);
            det1=evalDet(temp,row-1,col-1);
            det+=((sign)*a[0][i]*det1);
            //System.out.println( "Values are rwo,col,i,sign,a[0][i],det1,det" +row+" "+col+" "+i+" "+sign+" "+a[0][i]+" "+det1+" "+det);       
        }   
        return det;                    
    }
   
   
    public static void main(String args[])     throws IOException
    {         
        int row,col,val=0;
        InputStreamReader in=new InputStreamReader(System.in);
        BufferedReader br=new BufferedReader(in);
        System.out.println("Enter no of Row");
        String s=br.readLine();
        row=Integer.parseInt(s);
        System.out.println("Enter no of Col");
        s=br.readLine();
        col=Integer.parseInt(s);
        int a[][]=new int[row][col];
        Determinant det=new Determinant();
        det.input(a);
        val=det.evalDet(a,row,col);
        System.out.println("Determinant is " + val);
    }
   
}



3.

import java.io.*;

public class Palindrome
{
    public static boolean checkPalindrome(String str)
    {
        int i=0,j=str.length()-1;
        char ch1,ch2;
        while(i<j)
        {
            do
            {
            ch1=str.charAt(i);        
            i++;
            }while(!Character.isLetterOrDigit(ch1));
        
            do
            {
            ch2=str.charAt(j);        
            j--;
            }while(!Character.isLetterOrDigit(ch2));    
            
            if(Character.toLowerCase(ch1) != Character.toLowerCase(ch2))            
                return false;                
        }
        return true;
    }
    
    public static void main(String args[]) throws IOException
    {
        InputStreamReader in=new InputStreamReader(System.in);
        BufferedReader br=new BufferedReader(in);
        System.out.println("Enter the String");
        String s=br.readLine();
        if(checkPalindrome(s))
            System.out.println("String is Palindrome");
        else
            System.out.println("String is not Palindrome");
        
    }
    
}