blob: 1d3e34daa22d778237260e74c6410361d6f8f778 [file] [log] [blame]
// $Id: methcall.java,v 1.1 2004-05-23 07:14:27 bfulgham Exp $
// http://www.bagley.org/~doug/shootout/
// Collection class code is from my friend Phil Chu, Thanks Phil!
import java.io.*;
import java.util.*;
import java.text.*;
class Toggle {
boolean state = true;
public Toggle(boolean start_state) {
this.state = start_state;
}
public boolean value() {
return(this.state);
}
public Toggle activate() {
this.state = !this.state;
return(this);
}
}
class NthToggle extends Toggle {
int count_max = 0;
int counter = 0;
public NthToggle(boolean start_state, int max_counter) {
super(start_state);
this.count_max = max_counter;
this.counter = 0;
}
public Toggle activate() {
this.counter += 1;
if (this.counter >= this.count_max) {
this.state = !this.state;
this.counter = 0;
}
return(this);
}
}
public class methcall {
public static void main(String args[]) throws IOException {
int n = Integer.parseInt(args[0]);
boolean val = true;
Toggle toggle = new Toggle(val);
for (int i=0; i<n; i++) {
val = toggle.activate().value();
}
System.out.println((val) ? "true" : "false");
val = true;
NthToggle ntoggle = new NthToggle(true, 3);
for (int i=0; i<n; i++) {
val = ntoggle.activate().value();
}
System.out.println((val) ? "true" : "false");
}
}