Ćwiczenia

Zadanie 2. Dla danej liczby naturalnej n podać liczbę x wszystkich cyfr występujących w jej zapisie

Spostrzeżenie: W zapisie każdej liczby naturalnej n >=1 występuje co najmniej jedna cyfra.

Sposób 1. Zadeklaruje tablicę liczb do testowania.

'use strict';
function policzCyfry(n){
	
	let x = 0;

	//instrukcja iteracyjna while
	while (n > 0){
		x++;
		n = Math.floor(n/10);
	}
	return x;
}

let t_n = [1234,2137];
let d = t_n.length;
for(let indeks = 0; indeks<d-1;indeks++){
	window.document.writeln('n=',t_n[indeks],'<br>x=',policzCyfry(t_n[indeks]),"<br>");
}

// deklaracja zmiennej indeks znajduje się w czesci inicjalizacyjne instrukcji interacyjnej for. Oznacza to, że ta zmienna jest widoczna tylko w bloku instrukcji for.

Wyniki:


Sposób 2. Nie używamy zmiennej indeks.

'use strict';

//let t_n = [1234,2137]; używamy tablicy zdefiniowanej wyżej
// podobnie z funkcją policzCyfry
for(let liczba of t_n){
	window.document.writeln('n=',liczba,'<br>x=',policzCyfry(liczba),"<br>");
}

//deklaracja zmiennej indeks znajduje się w czesci inicjalizacyjne instrukcji interacyjnej for. Oznacza to, że ta zmienna jest widoczna tylko w bloku instrukcji for, ale 
nie jest widoczna po zakończeniu instrukcji iteracyjnej for.

Wyniki:


Zadanie 3. Dla danej liczby naturalnej n podac sume x wszystkich cyfr występujacych w jej zapisie. Bezindeksowy dostęp do elementu tablicy.

liczby = [2137,696969];
function n_suma_cyfr(n){
	let suma = 0;
	while(n>0){
		suma += (n%10);
		n = Math.floor(n/10);
	}
	return suma
}
for(let liczba of liczby){
	window.document.writeln("n=",liczba,"
x=",n_suma_cyfr(liczba),"
"); }

Wyniki:


Sposób 2. Dostep do tablicy z indeksem

let dlugosc_liczby = liczby.length-1;
for(let liczba =0;liczba < dlugosc_liczby; liczba++){
	window.document.writeln("n=",liczby[liczba],"<br>x=",n_suma_cyfr(liczby[liczba]),"<br>");
}

Spostrzeżenie: Liczba naturalna n jest parzysta <=> reszta z dzielenia n przez 2 jest równa 0. Resztę z dzielenia wyznaczamy za pomocą operatora %.