moin
ich bin neu in c# und hab ein kleines problem
ich wollte mir aus spass ein kleines programm basteln dass die größenbegrenzung für integer-werte umgeht
in ein array schreib ich dafür in array[0] den startwert, verändere ihn (in dem fall quadriert), dann überprüfe ich die grösse und schreibe das ergebnis der ganzzahldivision durch 1000000 ins nächst höhere feld und ersetzte den wert in array[0] durchs modulo
(sry im erklären von sowas bin ich ne niete ich häng mal am ende den quellcode an)
zur ausgabe wollte ich mir jetzt ne rekursive prozedur schreiben die mir die werte von array[99] bis array[0] aneinanderkettet - jeweils mit nem leerzeichen dazwischen
wenn ich das ganze jetzt ausführe krieg ich beim ersten aufruf der "ausgabe"-funktion innerhalb der "ausgabe"- funktion diese "stack overflow exception"
vielleicht hat ja einer von euch ne idee was da nich stimmen könnte

thx im voraus
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63:
| using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics;
namespace ConsoleApplication3 { class Program { public static void Main(string[] args) { int max = 100; int pos = 0; int[] blub = new int[max]; blub[0] = 1; while (1 == 1) { pos = position(pos, max, blub); for (int i = 0; i <= pos; i++) { blub[i] = blub[i] + blub[i]; if (blub[i] > 999999) { if (i < 99) { blub[i + 1] = blub[i + 1] + (blub[i] / 1000000); blub[i] = blub[i] % 1000000; } } } Console.WriteLine(ausgabe(99, blub)); System.Threading.Thread.Sleep(50); } }
static string ausgabe(int i, int[] blub) { if (i == 0) { return (Convert.ToString(blub[i])); } string sülz = ausgabe(i--, blub); string blah = Convert.ToString(blub[i]); return (blah + " " + sülz); }
static int position(int pos, int max, int[] blub) { for (int i = (max - 1); i >= pos; i--) { if (blub[i] != 0) { return (i); } } return (-1); } } } |
*edit:
habs mal in java probiert da kommt das gleiche

also irgendwas muss ich übersehen haben ^^
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt