Quersumme bilden lassen

paco89

Bekanntes Mitglied
hallo liebes forum,

ich wollte ein programm schreiben, dass die zahlen von 1 bis 100 addiert, danach die wurzel aus der summe zieht und anschließend die quersumme von dem wurzelergebnis zieht.
bis zum wurzelziehen hab ich es hinbekommen, aber wie kann ich das programm so erweitern, dass ich von dem ergebnis auch die quersumme bilden kann?

hier ist mein code:

Java:
public class Rechner {

	private static double wurzel()
	{	double res = 0;
		for (int i=1; i<=100; i++)
		{
			res += i; 
		}
		
			res = Math.sqrt(res);
	
		return res;
	}
		
		public static void main(String [] args)
		{
			System.out.println(Rechner.wurzel());
		}
}


als ergebnis kommt da 71.0633....nochwas raus...wie kann ich davon die quersumme bilden lassen?


wäre über jede hilfe dankbar....;)
 

timbeau

Gesperrter Benutzer
Die Zahl in einen String umwandeln, diesen String splitten und über eine Schleife jede Zahl zu int casten und addieren
 

paco89

Bekanntes Mitglied
ach, in der aufgabenstellung stand auch dass ich die zahl vor dem wurzelziehen noch miteinander multiplizieren muss.....also sieht mein code jetzt folgendermaßen aus:

Java:
public class Rechner {

	private static double wurzel()
	{	double res = 0;
		for (int i=1; i<=100; i++)
		{
			res += i; 
		}
			res *= res;
			res = Math.sqrt(res);
	
		return res;
	}
		
		public static void main(String [] args)
		{
			System.out.println(Rechner.wurzel());
		}
}


als ergbnis kommt da jetzt 5050.0 raus. quersumme ist ja 10. aber das will ich ja mit dem code realisieren. also habe ich mal versucht die zahl in einen string umzuwandeln, dann ne schleife usw....das sah dann so aus....;)


Java:
public class Rechner {

	private static double wurzel()
	{	double res = 0;
		for (int i=1; i<=100; i++)
		{
			res += i; 
		}
			res *= res;
			res = Math.sqrt(res);
			
			String res1 = (String) res;
			
			
	
		return res1;
	}
		
		public static void main(String [] args)
		{
			System.out.println(Rechner.wurzel());
		}
}


geht das mit dem casten in einen string ? aber das mit dem string aufsplitten habe ich nicht kapiert....
 
V

vanny

Gast
die Quersumme bis zum Komma/Punkt also ohne die Dezimalen oder alle Stellen deines double?

String#valueOfDouble(deinDouble); ginge
String res1 = "" + res; sollte auch gehen
String res1 = res.toString(); wäre auch einen Versuch wert.

ansonsten solltest du den double zu einem int machen und ggf. vorher noch runden.

Gruß Vanny
 

paco89

Bekanntes Mitglied
so ich habe den code jetzt geändert zu :

Java:
public class Rechner {
 
    private static double wurzel()
    {   double res = 0;
        for (int i=1; i<=100; i++)
        {
            res += i; 
        }
            res *= res;
            res = Math.sqrt(res);
            
            String res1 = "" + res;
			String [] splittedString = String.valueOf(int i).split("");
            
            
    
        return res1;
    }
        
        public static void main(String [] args)
        {
            System.out.println(Rechner.wurzel());
        }
}


ist das richtig so? wie muss ich jetzt die schleife einbauen, das habe ich auch nicht ganz verstanden....;(
 

XHelp

Top Contributor
Ich würde an deiner Stelle erstmal eine Ganzzahl daraus machen ( sqrt(a^2) ist überraschender Weise wieder a (a ist ohnehin positiv)), das erleichtert dir etwas die Arbeit. Ansonsten liefert eine Suche nach "Quersumme" hier im Forum bestimmt genügend Beispiele.
 
Zuletzt bearbeitet:

timbeau

Gesperrter Benutzer
Java:
public static void main(String[] args) {
		int i = 1234567;
		List<Integer> iList = splitInt(i);
		for (Integer integer : iList) {
			System.out.print(integer + "-");
		}

		//Ab hier ist es einfach
	}

	private static List<Integer> splitInt(int i) {
		List<Integer> iList = new LinkedList<Integer>();
		String tmp = String.valueOf(i);
		int mod = 10;
		for (int j = 0; j < tmp.length(); j++) {
			System.out.println(i%mod);
			iList.add(i%mod);
			i = i / mod;
			
		}
		Collections.reverse(iList);
		return iList;
		
		
	}

Wäre noch eine Idee.
 

Neue Themen


Oben