1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. 2Stoned, 15.03.2010 #1
    2Stoned

    2Stoned Threadstarter Erfahrener Benutzer

    Grüäzi Wohl
    Vielleicht kann mir jemand kurzerhand auf die Sprünge helfen.
    Ich wollte ein kleines App schreiben, welches die Collatz-Folgen der Zahlen 1-100 durchgeht, und anschliessend ausgibt, bei welcher Zahl die grösste Endsumme erreicht wird, und wie gross denn diese Summe ist.
    Eine kleine Zeitmessung werde ich auch noch einbauen, evtl. dient es dann als "Benchmark".

    Nun, hier der Code:

    collatz.java
    Code:
    package com.collatz.bench;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.ImageButton;
    import android.widget.Toast;
    
    public class collatz extends Activity {
        /** Called when the activity is first created. */
    	Bench test = new Bench();
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            final ImageButton button = (ImageButton) findViewById(R.id.android_button);
            button.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    // Perform action on clicks
                	
                	Toast.makeText(collatz.this, "Das höchste Collatz-Ergebnis erreicht man mit der Zahl " +com.collatz.bench.Bench.counterMAX, Toast.LENGTH_SHORT).show();
                }
            });
        }
    }
    
    Bench.java
    Code:
    package com.collatz.bench;
    
    public class Bench {
    
    	int betrag = 0;
    	static int maxbetrag = 0;
    	int counter = 0;
    	static int counterMAX = 0;
    	int wert = 0;
    	int n = 0;
    	
    
    	
    	public Bench () {
    		while (counter < 100){
    			n = counter;
    			betrag = 0;
    		while (n > 1) {
    			if ( n %2==0) {
    				betrag = betrag + n;
    				if ( betrag > maxbetrag ){ maxbetrag = betrag; counterMAX = counter;}
    				n = n/2;
    			}
    			else {
    				betrag = betrag + n;
    				if ( betrag > maxbetrag ){ maxbetrag = betrag; counterMAX = counter;}}
    				n = 3*n+1; 
    				}
    		counter++;
    				}
    			}
    	}
    }
    
    Die App läuft in so fern, dass eine Ausgabe mit dem Wert "0" erfolgt, nur wird nie was gerechnet.
    Ich denke, oder hoffe, dass mir wohl nur noch eine Zeile fehlt, da ich irgend etwas partout übersehe :/

    Danke schon mal fürs Durchlesen!
     
  2. DieGoldeneMitte, 15.03.2010 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Deine Programmlogik (vor allem die Einrücklogik) ist etwas wirr.
    Wieso wird counter *in* der Schleife für *n* erhöht?
    Dein "Bench" müsstest Du ganz normal in der IDE deiner Wahl im Debugger starten können.
    Dann wird sich das Problem sicher schnell klären.

    Jedenfalls ist dein Problem kein Android, sondern ein Java-Problem.

    ADD:
    sollte das n=3*n+1 nicht im else Zweig des n%2==0 sein?
     
    Zuletzt bearbeitet: 15.03.2010
  3. Freeman1979, 20.03.2010 #3
    Freeman1979

    Freeman1979 Neuer Benutzer

    Wenn ich das richtig sehe hast deine Programmlogik im Construktor der Benchklasse. Dieser wird aber nicht aufgerufen da du die deine Properties quasi statisch aufrufst. Füg mal ein Bench x = new Bench(); ein und hol die deine Properties dann von x.

    Gruß Matze
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Bild per Intent an ListView übergeben und anzeigen Android App Entwicklung 13.08.2017
[ERLEDIGT] Android Studio Erste App-Programmierung Android App Entwicklung 02.08.2017
[NON-DEV] ADB -Nach Tutorial zur Speichererweiterung - Installation von Apps schlägt fehl Android App Entwicklung 24.06.2017
[ERLEDIGT] Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung 23.06.2017
[OFFEN] App Leitfaden gesucht! Android App Entwicklung 20.06.2017
[GESCHLOSSEN] APK Zigalign Fehler Playstore Android App Entwicklung 13.06.2017
[GELÖST] Nach AS Update Fehler Error running app: Default Activity not found Android App Entwicklung 16.05.2017
Tutorial gesucht (Entwicklung,SQL Verbindung) Android App Entwicklung 03.03.2017
Android SQLLite Fehler Android App Entwicklung 13.02.2017
Warum erhalte ich ein "IllegalArgumentException" zur Laufzeit ? Android App Entwicklung 02.02.2017
Du betrachtest das Thema "Fehler gesucht - Codeblindheit oder Blödheit :S" im Forum "Android App Entwicklung",