diff options
Diffstat (limited to 'challenge-252/luca-ferrari/java/ch_2.java')
| -rw-r--r-- | challenge-252/luca-ferrari/java/ch_2.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/challenge-252/luca-ferrari/java/ch_2.java b/challenge-252/luca-ferrari/java/ch_2.java new file mode 100644 index 0000000000..5a4b46083a --- /dev/null +++ b/challenge-252/luca-ferrari/java/ch_2.java @@ -0,0 +1,40 @@ +import java.util.*; + +public class ch_2 { + public static void main( String argv[] ) throws Exception { + int size = Integer.parseInt( argv[ 0 ] ); + + if ( size <= 3 ) + throw new Exception( "Cannot work with a size less than 3!" ); + + List<Integer> nums = new LinkedList<Integer>(); + + + if ( size % 2 == 0 ) { + for ( int i = 1; i < size / 2 ; i++ ) { + nums.add( i ); + nums.add( i * -1 ); + } + } + else { + for ( int i = 1; i < ( size - 1 ) / 2 ; i++ ) { + nums.add( i ); + nums.add( i * -1 ); + } + + int next = ( size - 1 ) / 2 + 1; + nums.add( next ); + nums.add( next + 1 ); + nums.add( ( next * 2 + 1 ) * -1 ); + } + + + boolean printedOne = false; + for ( int i : nums ) { + System.out.print( i + ( printedOne ? ", " : "" ) ); + printedOne = true; + } + + System.out.println(); + } +} |
