Wie kann man in C# überprüfen wieviel mal die Zahl 1 in einer anderen Zahl vorkommt?
3 Antworten
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Speicher die zahl in einem Array. Jede stelle= 1 speicherstelle im array. Dann machst eine for-schleife von 0 bis arraylänge. In der for-schleife scheibst dann if (array[i]==1){ int anzahl_einser++}
Und dann anzahl_einser ausgeben
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Ich würde das auf diese Weise machen:
const int base=10;
const int gesucht = 1;
int zaehler = 0;
unsigned int zahl = zuUntersuchen;
while (zahl != 0)
{
if (gesucht == zahl % base) zaehler++; zahl /= base;}
Ich geb's auf, die Code-Formatierung möge man sich denken.
![](https://images.gutefrage.net/media/user/Dory1/1463259757316_nmmslarge__113_0_387_387_9cc3321f365109157e4332f57e79e665.png?v=1463259759000)
Du willst bspw. die Anzahl der Einsen in der Zahl 123123123 (also 3) zählen?
zahl.ToString().Split('1').Length - 1
![](https://images.gutefrage.net/media/default/user/7_nmmslarge.png?v=1438863662000)
Das funktionier nicht so ganz mit dem Length - 1 zeig mir folgenden Fehler an:
Nur assignment-, call-, increment-, decrement- und new object-Ausdrücke können als Anweisung verwendet werden
Zeile
ode\Program.cs
46