Gå til innhold

trenger mer hjelp med rekursjon


Anbefalte innlegg

Videoannonse
Annonse
Gjest Slettet+1374861

Her er en måte å gjøre det på. Fins sikkert bedre måter å håndtere lengden på en int, men dette var det jeg mekka kjapt. Tar selv gjerne input på bedre måter å håndtere nettopp det problemet.

 

public static int tverrsum(int heltall)
{
int sum = 0;

String strengTall = ""+heltall;
int forsteSiffer = Integer.parseInt(strengTall.substring(0, 1));
int restenAvSiffer = Integer.parseInt(strengTall.substring(1));

sum = forsteSiffer;

if(restenAvSiffer >= 10)
	sum += tverrsum(restenAvSiffer);
else
	sum += restenAvSiffer;

return sum;
}

public static void main(String[] args)
{
System.out.println(tverrsum(123));
}

Endret av Slettet+1374861
Lenke til kommentar
Her er en måte å gjøre det på. Fins sikkert bedre måter å håndtere lengden på en int, men dette var det jeg mekka kjapt. Tar selv gjerne input på bedre måter å håndtere nettopp det problemet.

 

public static int tverrsum(int heltall)
{
int sum = 0;

String strengTall = ""+heltall;
int forsteSiffer = Integer.parseInt(strengTall.substring(0, 1));
int restenAvSiffer = Integer.parseInt(strengTall.substring(1));

sum = forsteSiffer;

if(restenAvSiffer >= 10)
	sum += tverrsum(restenAvSiffer);
else
	sum += restenAvSiffer;

return sum;
}

public static void main(String[] args)
{
System.out.println(tverrsum(123));
}

 

Jeg fikk mye hjelp av koden din, men fant det ut på en enklere måte,,,mindre kode:

 

public class Oppgave2{

private static int sum = 0;

public static void main(String[] args){

	System.out.println(tverrsum(125834));
}

public static int tverrsum(int tallet){

	if(tallet < 10){
		sum += tallet;
	}
	else{
		sum += tallet%10;
		tverrsum(tallet/10);
	}
	return sum;
}	
}

Lenke til kommentar
Gjest Slettet+1374861

ja jo... det er nok en meget bedre løsning. trenger faktisk ikke lagre noe i variabler i det heltatt. dette er nok

 

public static int tverrsum(int heltall)
{
if(heltall >= 10)
	return (heltall%10) + tverrsum(heltall/10);
else
	return heltall;
}

 

noe upraktisk å ha en statisk metode som er avhengig av en statisk variabel utenfor metoden, synes nå jeg da. føler at en statisk metode ofte skal være litt "uavhengig av kontekst".

Endret av Slettet+1374861
Lenke til kommentar
ja jo... det er nok en meget bedre løsning. trenger faktisk ikke lagre noe i variabler i det heltatt. dette er nok

 

public static int tverrsum(int heltall)
{
if(heltall >= 10)
	return (heltall%10) + tverrsum(heltall/10);
else
	return heltall;
}

 

noe upraktisk å ha en statisk metode som er avhengig av en statisk variabel utenfor metoden, synes nå jeg da. føler at en statisk metode ofte skal være litt "uavhengig av kontekst".

 

 

Takk for hjelpen, fant ut av det jeg og:)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...