Funció per als nombres equilibrats de tres en tres P49485


Statement
 

pdf   zip   main.cc

html

En aquest problema, direm que un nombre és equilibrat de tres en tres si la suma dels bits a les posicions 0, 3, 6, …, la suma dels bits a les posicions 1, 4, 7, …, i la suma dels bits a les posicions 2, 5, 8, … és idèntica.

Per exemple, el nombre 2135, que en binari és 100001010111, és equilibrat de tres en tres, perquè comptant els bits fent salts de tres en tres, començant en qualsevol dels tres primers (o últims) bits, la suma sempre és 2.

Escriviu una funció

bool es_equilibrat_de_tres_en_tres(int n);

que retorni cert si i només si el natural n és equilibrat de tres en tres.

Precondició

Es compleix n ≥ 0.

Observació Només cal enviar el procediment demanat; el programa principal serà ignorat.

Information
Author
Salvador Roura
Language
Catalan
Official solutions
C++
User solutions
C++