Laden...

Zahl aus Quersumme berechnen

Erstellt von Cookiie vor 16 Jahren Letzter Beitrag vor 16 Jahren 7.240 Views
Cookiie Themenstarter:in
363 Beiträge seit 2007
vor 16 Jahren
Zahl aus Quersumme berechnen

Beschreibung:

Die Funktion berechnet eine x-stellige Zahl, die die vorher festgelegte Quersumme hat.
Sehr hilfreich bei der Erzeugung von Zufallszahlen die für die Erzeugung von Seriennummer verwendet werden, in denen Informationen versteckt sind.

Gruß Cookiie


		/// <summary>
		/// berechnet ein x-stellige Zahl die die festgelegte Quersumme hat
		/// </summary>
		/// <param name="qs">quersumme</param>
		/// <param name="z">Stellenanzahl</param>
		/// <returns>z-stellige Zahl</returns>
		private string zahlFromQSumme(string qs, int z)
		{
			string strzahl = String.Empty ;
			int zahl = 0;
			int q;
			int min, max = 9;
			try
			{
				q = Convert.ToInt32(qs);
				//maximal z-stellig mit 9 darstellbar
				if (q > max*z || q < 0 || z < 2)
					return strzahl;
			}
			catch (Exception e)
			{
				Console.WriteLine(e);
				return strzahl;
			}
			Random rnd = new Random();
			for (z=z-1; z>1; z--)
			{
				//zahl 1
				min = -1;
				do
				{
					min++;
				while (q < max)
					max--;
					zahl = rnd.Next(min,max);
				}while(q - zahl > max*z);
				q = q - zahl;
				strzahl += zahl.ToString();
			}

			//die letzten 2 Stellen
			min = -1;
			do
			{
				min++;
			while(q < max)
				max--;
				zahl = rnd.Next(min,max);
			}while(zahl > q || (q-zahl) > max);
			q = q - zahl;
			strzahl += zahl.ToString();
			strzahl += q.ToString();			

			return strzahl;
		}

Schlagwörter: Quersumme, Seriennummer, Generator, Zahl

"Hail to the King, Baby!"