In einer Zahl die erste und die letzte ziffer addieren
-
- Mitglied
- Beiträge: 105
- Registriert: 29.12.2004 21:35
In einer Zahl die erste und die letzte ziffer addieren
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?
Und wie kann ich Zahlen im array zerlegen?
Code: Alles auswählen
$zahl = "1234";
$erste = substr($zahl, 0, 1);
$letzte = substr($zahl, -1, 1);
$addiert = $erste + $letzte;
KB:knigge
-
- Mitglied
- Beiträge: 105
- Registriert: 29.12.2004 21:35
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
Bzgl. der ersten Frage: Simpel:
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.
Code: Alles auswählen
$zahl%10 + floor($zahl/pow(10,floor((log($zahl)/M_LN10))));
Edit: mit Strings geht es natürlich auch.
-
- Mitglied
- Beiträge: 105
- Registriert: 29.12.2004 21:35
na 6
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 .
Code: Alles auswählen
echo $zahl%10 + floor($zahl/pow(10,floor((log($zahl)/M_LN10))));
Bei den anderen Fragen verstehe ich nicht so recht, was Du willst .
-
- Mitglied
- Beiträge: 105
- Registriert: 29.12.2004 21:35
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
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
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
Code: Alles auswählen
$zahl='123456';
while ($i < strlen($zahl)-1)
{
echo ( $zahl{$i}+$zahl{strlen($zahl)-1} )."<br/>";
$i++;
}
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
-
- Mitglied
- Beiträge: 105
- Registriert: 29.12.2004 21:35
Code: Alles auswählen
$zahl='123456';
while ($i < strlen($zahl)-1)
{
echo ( $zahl{$i}+$zahl{strlen($zahl)-1} )."<br/>";
$i++;
}
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten: