In einer Zahl die erste und die letzte ziffer addieren

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

In einer Zahl die erste und die letzte ziffer addieren

Beitrag von Suche Hilfe »

Wie kann ich es machen das von einer Zahl immer die erste und die letzte Ziffer addiert wird.
Und wie kann ich Zahlen im array zerlegen?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Code: Alles auswählen

$zahl = "1234";
$erste = substr($zahl, 0, 1);
$letzte = substr($zahl, -1, 1);
$addiert = $erste + $letzte;
KB:knigge
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

und wie kann ich es machen wenn ich eine zahl z.bsp. 17485372 habe. das jede zahl angefangen von der ersten mit der letzten die zweite mit der vorletzten die dritte mit der dritten von hinten usw. bis jede zahl 1 mal addiert wurde. und wenn eine zahl übrig bleibt dann wird die einfach zum ergebniss dazugeschrieben
Benutzeravatar
kellanved
Mitglied
Beiträge: 570
Registriert: 05.02.2005 15:15
Wohnort: Berlin

Beitrag von kellanved »

Bzgl. der ersten Frage: Simpel:

Code: Alles auswählen

 $zahl%10 + floor($zahl/pow(10,floor((log($zahl)/M_LN10))));
wobei log der natürliche Logarithmus und $zahl Deine Zahl ist . Bei Zahlen kleiner 10 sind allerdings erste und letzte Ziffer identisch; die Zahl wird dann einfach verdoppelt.

Edit: mit Strings geht es natürlich auch.
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

diesen script verstehe ich nicht. wie gibt man das dann mit echo aus? sagen wir ich habe eine zahl 12345 was sollte dann da rauskommen?
Benutzeravatar
kellanved
Mitglied
Beiträge: 570
Registriert: 05.02.2005 15:15
Wohnort: Berlin

Beitrag von kellanved »

na 6

Code: Alles auswählen

echo $zahl%10 + floor($zahl/pow(10,floor((log($zahl)/M_LN10))));
Ist allerdings auch nur eine Antwort auf Dein erste Frage, die auch schon von Pyramide beantwortet wurde.

Bei den anderen Fragen verstehe ich nicht so recht, was Du willst ;-).
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

ich will aus einer zahl z.bsp. 12345 immer die erste mit der letzten, die zweite mit der vorletzten addieren.
sollte also so sein

1 + 5
2 + 4
3

das ergebniss sollte so sein 663

dann wieder die erste und die letzte addieren also

6 + 3
6

dann sollte 96 rauskommen. aber dann mit verschieden langen zahlen.
vielleicht kann man ein das irgendwie in eine while schleife machen. wenn es mehr als 2 ziffern sind dann addieren wenn nicht dann die 2 ziffern ausgeben
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Code: Alles auswählen

$zahl='123456';
while ($i < strlen($zahl)-1)
{
  echo ( $zahl{$i}+$zahl{strlen($zahl)-1} )."<br/>";
  $i++;
}
so?
Wenn du das solange machen willst, bist du nur noch eine Ziffer hast solltest du dich über "Rekursive Funktion" informieren. Abgesehen davon klappt dann dieser Ansatz auch nicht mehr da die Zahlenkette hierdurch immer größer werden kann....Ansatz wäre Array
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

Code: Alles auswählen

$zahl='123456'; 
while ($i < strlen($zahl)-1) 
{ 
  echo ( $zahl{$i}+$zahl{strlen($zahl)-1} )."<br/>"; 
  $i++; 
} 
dieser code kommt schon näher dran. nur das es bei der nächsten schleife dieses strlen($zahl)-1} um 1 senkt. also beim nächstem durchgang -2 dann -3 usw.
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Suche Hilfe hat geschrieben: dieser code kommt schon näher dran. nur das es bei der nächsten schleife dieses strlen($zahl)-1} um 1 senkt. also beim nächstem durchgang -2 dann -3 usw.
sicher?

strlen($zahl)-1 ist nur immer 5 in dem Beispiel weil es die 0 natürlich auch gibt und eben keine 6.....
Antworten

Zurück zu „Coding & Technik“