Anzahl Ziffern (Schleifen)
Schreiben Sie ein Programm, das die Anzahl Ziffern einer Zahl ermittelt. In diesem Kontext hat die Zahl 0 eine Ziffer. Die Zahl 2023 hat 4 Ziffern. Die Zahl 00343 hat nur drei Ziffern, denn die beiden (führenden) Nullen werden nicht dazugezählt.
Erweitern Sie das Programm derart, dass die Ziffernanzahl aller Zahlen von 1 bis 1024 ausgegeben wird.
0 Kommentare
7 Lösung(en)
def anzahlziffern(zahl):
s = str(zahl)
z = float(s)
ziffern = 0
while (z >= 1):
z = z / 10
ziffern = ziffern + 1
print ziffern
anzahlziffern(004234)
anzahlziffern('000043434')
import java.util.*;
public class ZiffernAnzahl {
public static void main(String[] args) {
new ZiffernAnzahl().top(); }
void top() {
int eingabe = 1;
while(eingabe <= 1024) {
int zZahl = ziffernAnzahl(eingabe);
ausgabe(eingabe, zZahl);
eingabe = eingabe + 1; }
}
int eingabe() {
System.out.println("Zahl: ");
Scanner sc = new Scanner(System.in);
return sc.nextInt(); }
void ausgabe(int eingabe, int resultat) {
System.out.println("Ziffernanzahl (" + eingabe + ") : " + resultat); }
int ziffernAnzahl(int zahl) {
int zZahl = 0;
while(zahl > 0) {
zZahl = zZahl + 1;
zahl = zahl / 10; }
return zZahl; }
} // end of class ZiffernAnzahl
a = raw_input("Zahl = ")
while a.startswith("0"):
a = a[1:]
print len(a), "Ziffer(n)"
Lösung von: Name nicht veröffentlicht
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
int main()
{
int iZahl;
int iZiffer = 0;
printf("Geben sie eine Zahl ein: ");
scanf_s("%i", &iZahl);
fflush(stdin);
if(iZahl < 10) {
iZiffer = 1;
printf("%i", iZiffer);
} else if(iZahl < 100) {
iZiffer = 2;
printf("%i", iZiffer);
} else if(iZahl < 1000) {
iZiffer = 3;
printf("%i", iZiffer);
} else {
iZiffer = 4;
printf("%i", iZiffer);
}
getchar();
return 0;
}
Lösung von: Elias Zech (Optics Balzers)
function getNumberOfValidDigits(input) {
return parseInt(input).toString().length;
}
// ausgabe
console.log(getNumberOfValidDigits(2023));
console.log(getNumberOfValidDigits(00343));
for (let i = 1; i <= 1024; i++)
console.log(`${i}: ${getNumberOfValidDigits(i)}`);
Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)
// NET 6.x | C# 10.x | VS-2022
// Aufgabe 1
var lst = new List<object> { 'f', 00123, 45, "0044", "0", 0, 00000, "sieben", 1234, "9876", '0', null, 0b0101, 0xF };
PrintNumberOfValidDigits(lst);
// Aufgabe 2
var lst_1_1024 = Enumerable.Range(1, 1024);
PrintNumberOfValidDigits(lst_1_1024);
void PrintNumberOfValidDigits<T>(IEnumerable<T> l) => l.Where(x => x != null && int.TryParse(x.ToString(), out var _))
.Select(x => int.Parse(x?.ToString() ?? "").ToString()).ToList()
.ForEach(x => Console.WriteLine($"{x} ({x.Length})"));
Lösung von: Jens Kelm (@JKooP)
// C++ 14 | VS-2022
#include <iostream>
int get_number_of_digits(int n) {
return log10(abs(n)) + 1;
}
void print_number_of_digits(int begin, int end) {
if (end < begin) return;
for (auto i{ begin }; i <= end; i++)
std::cout << i << " -> " << get_number_of_digits(i) << "\n";
}
int main() {
int n{};
std::cout << "Zahl: ";
std::cin >> n;
std::cout << "Anzahl Ziffern: " << get_number_of_digits(n) << "\n";
print_number_of_digits(1, 1024);
}
Lösung von: Jens Kelm (@JKooP)
Aktionen
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung:
Meta
Zeit: | 1 |
Schwierigkeit: | k.A. |
Webcode: | qgf8-hnro |
Autor: | Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch) |