Aim
Write a program to print the source sequence of cards, for one card below the deck & every alternate card opened & discarded ?
Code
Write a program to print the source sequence of cards, for one card below the deck & every alternate card opened & discarded ?
Code
import java.io.*; class OutSequenceException extends Exception { public String toString() { return "OutSequenceException: Invalid Number Entered !\nProgram Terminating...."; } } class Card { public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Array to store inputs and sorted sequence int[] a = new int[60]; int[] b = new int[60]; boolean flag=false; int count=0, index=0, skips, n; System.out.print("Enter Limit (13,26,39,52) :"); n = Integer.parseInt(br.readLine()); if(n!=13 && n!=26 && n!=39 && n!=52) throw new OutSequenceException(); System.out.println("Provide Inputs"); for(int i=0; i<n; i++) { a[i]=Integer.parseInt(br.readLine()); if(a[i]>n) throw new OutSequenceException(); } System.out.print("Enter number of skips: "); skips = Integer.parseInt(br.readLine()); for(int i=0; i<n; i++) { //if flag is true means skips are done and b[i]=0 so no element placed there if(flag && b[i]==0) { b[i]=a[count]; count++;//next card to be placed flag=false; } /* if previous if not executed because flag=false but some element is there then also this will not execute hence skip will not be incremented rather i will increase and next position will be checked */ if(b[i]==0) //means previous if is not executed and no element is placed there { index++; if(index==skips) { flag=true; index=0; } else flag=false; } //Reset the loop if(i==(n-1)) i=-1; //Exit if(count==n) break; } //Finally print the result for(int i=0; i<n; i++) System.out.println(b[i]); } catch(Exception e) { System.out.println(e); } } }
No comments:
Post a Comment
Your comments are very much valuable for us. Thanks for giving your precious time.