Egyperces feladat – Többszörös megszámlálás

Sokszor találkozunk olyan feladatokkal, amikor nem egy tulajdonság alapján kell megszámolni valamit. Tegyük fel van egy számtömbünk, mely tudjuk, hogy a [0;10] intervallumból tartalmaz csak értékeket. Adjuk meg egyszerűen, hogy melyik szám hányszor szerepel a tömbben.

Ez egy megszámlálás feladat, de elég macerás lenne 11 külön for ciklussal megszámolni, és 11 változóban tárolni a darabszámokat.

Adott tehát a feladat: Írd ki, hogy melyik szám hányszor szerepel a tömbben!

Java forrás:

int[] tomb = { 2,5,4,0,10,1,4,8,5,2,8,1,9,10,
               7,7,3,5,2,4,3,8,0,8,10,8,1,1,8,
               10,7,7,3,8,3,6,6,7,5,8,9,3,9,3,
               5,9,9,5,2,8,10,4,1,0,4,9,2,5,5 };

C++ forrás:

int tomb[] = { 2,5,4,0,10,1,4,8,5,2,8,1,9,10,
               7,7,3,5,2,4,3,8,0,8,10,8,1,1,8,
               10,7,7,3,8,3,6,6,7,5,8,9,3,9,3,
               5,9,9,5,2,8,10,4,1,0,4,9,2,5,5 };

Most módosítsuk a tömböt, de a feladat ugyanaz: Írd ki, melyik érték hányszor szerepel a tömbben!

  1. A tömbben lévő számok intervalluma [5;20]
  2. A tömbben lévő számok intervalluma [-10;10]
  3. A tömbben lévő számok intervalluma [-30;-5]

Ennek a feladatnak a megoldását később közzé fogom tenni. Egyrészt ebből is sokat lehet tanulni, másrészt sok későbbi feladatban felhasználható az a trükk, melyet a megoldásban használok.

Maradjunk az első példánál, hogy a tömb a [0;10] intervallumból tartalmaz elemeket.

  • Milyen számok nem szerepelnek a tömbben?
  • Hányfajta érték nem szerepel a tömbben?
  • Mely számok fordulnak elő legtöbbször a tömbben?
  • Mely számok fordulnak elő legkevesebbszer a tömbben?

Ezekre a kérdésekre elég nehéz válaszolni, hiszen pontosan tudnom kell, hogy melyik hányszor szerepel a tömbben. Vagyis az alap számlálási probléma megoldása sok más feladatot is leegyszerűsít majd.

A feladat megoldása Java nyelven itt található.

One Reply to “Egyperces feladat – Többszörös megszámlálás”

  1. Pingback: Java kiegészítő lecke – Többszörös megszámlálás |

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

*

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .