view src/Collatz.java @ 0:307a81e46071 tip

initial committ
author Robert McIntyre <rlm@mit.edu>
date Tue, 18 Oct 2011 01:17:49 -0700
parents
children
line wrap: on
line source
1 package coderloop;
3 import java.io.File;
4 import java.util.Scanner;
6 class Collatz {
7 public static void main(String[] args)throws java.io.FileNotFoundException{
8 File file = new File(args[0]);
9 Scanner scanner = new Scanner(file);
10 int n = scanner.nextInt();
11 System.out.println(search_collatz(n));}
13 public static long collatz_next(long n){
14 if (0 == (n % 2)){
15 return n/2;}
16 else {
17 return (1 + (n * 3));}}
19 public static int collatz_length(int n){
20 long t = n;
21 int d = 1;
22 while (t > 1){
23 t = collatz_next(t);
24 d++;}
25 return d;}
27 public static int search_collatz(int n){
28 int max = 0;
29 int max_val = 0;
30 int temp_val = 0;
31 for (int i = 1; i<n; i++){
32 temp_val = collatz_length(i);
33 if (temp_val > max_val){
34 max = i;
35 max_val = temp_val;}}
36 return max;}
37 }