Skip to content

Instantly share code, notes, and snippets.

@zawataki
Created October 18, 2018 14:00
Show Gist options
  • Save zawataki/ebeefbc8e75517fe53355945e8710cb7 to your computer and use it in GitHub Desktop.
Save zawataki/ebeefbc8e75517fe53355945e8710cb7 to your computer and use it in GitHub Desktop.
package com.company;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.*;
/**
* Resolve http://tango-ruby.hatenablog.com/entry/2016/02/14/222943
*/
public class Resolver {
static final Logger logger = Logger.getLogger(Resolver.class.getName());
public static void main(String[] args) {
setupLogger();
logger.info("Hello");
final Integer numberOfCandies = 2110154;
final List<Boolean> ateCandies = new ArrayList<>();
for (Integer i = 0; i < numberOfCandies; i++) {
ateCandies.add(false);
}
final Integer stepCounts = 166;
Integer i = 0;
while (!ateCandies.get(i)) {
ateCandies.set(i, true);
i = (i + stepCounts) % numberOfCandies;
}
logger.info("Count: " + ateCandies.stream().filter(ate -> ate).count());
}
private static void setupLogger() {
ConsoleHandler consoleHandler = new ConsoleHandler();
consoleHandler.setLevel(Level.INFO);
consoleHandler.setFormatter(new MyFormatter());
logger.addHandler(consoleHandler);
logger.setUseParentHandlers(false);
}
}
class MyFormatter extends Formatter {
// Create a DateFormat to format the logger timestamp.
private static final DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
public String format(LogRecord record) {
StringBuilder builder = new StringBuilder(1000);
builder.append(df.format(new Date(record.getMillis())));
builder.append(" ").append(record.getLevel()).append(" ");
builder.append("[").append(record.getSourceClassName()).append(".");
builder.append(record.getSourceMethodName()).append("] ");
builder.append(formatMessage(record));
builder.append("\n");
return builder.toString();
}
public String getHead(Handler h) {
return super.getHead(h);
}
public String getTail(Handler h) {
return super.getTail(h);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment