Tråd: Fizzbuzz!
View Single Post
Får bli med jeg og da.
Java, det liker alle XD.
Her lager jeg to arrays, en med tall som er delelige med 3 og en med tall som er delelige med 5. Rett og slett bare gangetabellen opp til sluttverdien. Så looper jeg gjennom disse og sorterer ut i en ny array som så blir printet ut. Dritt enkelt sånn egentlig med veldig spesiell måte å gjøre det på mtp denne type oppgave. Jeg har ihverfall ikke sett noen andre på nettet gjøre det på denne måten tidligere.
Det hele er inspirert av Eratosthenes/Atkins' sil. De som liker matematisk historikk og primtall har sikkert vært borti logotytmen tidligere, og om du ikke har peiling på hva dette er; wikipedia it

Kode

import java.util.Arrays;
public class why_the_hell_not{
	public static void main(String[] args) {
		int[] trees = findNumbers3(100);
		int[] fives = findNumbers5(100);
        String[] buzzCut = season(trees,fives,100);
        display(buzzCut);
    }
	public static int[] findNumbers3(int end){
        int root = (int) Math.ceil(Math.sqrt(end));
        int[] trees = new int[end / 3];
        for(int i = 0; i <= root;)
        	for(int k = 3; k < end+1; k += 3){
        		trees[i] = k;
        		i++;
        	}
        return trees;
    }
    public static int[] findNumbers5(int end){
        int root = (int) Math.ceil(Math.sqrt(end));
        int[] fives = new int[end / 5];
        for (int i = 0; i <= root;){
            for (int j = 5; j < end+1; j += 5){
                fives[i] = j;
                i++;
            }
        }
        return fives;
    }
    public static String[] season(int[] trees,int[] fives, int end){
        String[] shitPommesFrites = new String[58];
        int i = 0;
        int j = 0;
        int k = 0;
        while (i < trees.length && j < fives.length) {
            if (trees[i] == fives[j]) {
                  shitPommesFrites[k] = "buzzfizz";
                  k++;
            }
            if (trees[i] <= fives[j]) {
                  shitPommesFrites[k] = "fizz";
                  i++;
            }
             else {
                  shitPommesFrites[k] = "buzz";
                  j++;
            }
            k++;
        }       
        return shitPommesFrites;
    }
    public static void display(String[] values){
       System.out.println(Arrays.toString(values));
    }
}

(Vil på forhånd beklage idiotiske variabelnavn og litt "ummoden" kode, som min gamle AlgDat-lærer beskrev mine innleveringer som. Den er sikkert også ganske så rotete, men orker ikke gjøre noe med det nå. Jeg er ganske full[typ sjangledritings] og har luktet litt på jazztobakken...)

Edit: Så nå at jeg sikkert burde skrevet ut alle tallene opp til hundre også, ikke bare de som er delelige med 3, 5 eller begge. Men, det for bli en annen gang. lol
Sist endret av moret; 19. januar 2014 kl. 01:40.