Kako podesiti pametne telefone i računare. Informativni portal

Ugniježđene petlje u Javi. Beskonačna for (Java) petlja

Posljednje ažuriranje: 31.10.2018

Druga vrsta kontrolnih struktura su petlje. Ciklusi omogućavaju, ovisno o određenim uvjetima, da se određena radnja izvrši više puta. Java jezik ima sljedeće tipove petlji:

za petlju

Petlja for ima sljedeću formalnu definiciju:

Za ([inicijalizacija brojača]; [uvjet]; [promjena brojača]) ( // akcije)

Razmotrite standard za petlju:

Za (int i = 1; i< 9; i++){ System.out.printf("Квадрат числа %d равен %d \n", i, i * i); }

Prvi dio deklaracije petlje, int i = 1, kreira i inicijalizira brojač i. Brojač ne mora biti tipa int. Može biti bilo koji drugi numerički tip, kao što je float. Prije nego što se petlja izvrši, vrijednost brojača će biti jednaka 1. U ovom slučaju, ovo je isto kao i deklaracija varijable.

Drugi dio je uvjet pod kojim će se petlja izvršiti. U ovom slučaju, petlja će se izvoditi dok i ne dođe do 9.

I treći dio je povećanje brojača za jedan. Opet, ne treba da povećavamo za jedan. Možete smanjiti: i-- .

Kao rezultat toga, blok petlje će se pokrenuti 8 puta dok vrijednost i ne postane jednaka 9. I svaki put će se ova vrijednost povećati za 1.

Ne moramo specificirati sve uslove kada deklarišemo petlju. Na primjer, možemo napisati ovako:

Int i = 1; for (; ;)( System.out.printf("Kvadrat od %d je %d \n", i, i * i); )

Definicija ciklusa ostaje ista, samo što su sada blokovi u definiciji prazni: za (; ;) . Sada ne postoji inicijalizovana promenljiva brojača, nema uslova, tako da će petlja trajati zauvek - beskonačna petlja.

Ili možete izostaviti nekoliko blokova:

Int i = 1; za (;i<9;){ System.out.printf("Квадрат числа %d равен %d \n", i, i * i); i++; }

Ovaj primjer je ekvivalentan prvom primjeru: imamo i brojač, samo što je kreiran izvan petlje. Imamo uslov izvršenja petlje. I tu je povećanje brojača već u samom bloku for.

Petlja for može definirati i upravljati s više varijabli odjednom:

int n = 10; for(int i=0, j = n - 1; i< j; i++, j--){ System.out.println(i * j); }

do petlje

Do petlja prvo izvršava kod petlje, a zatim provjerava uvjet u naredbi while. I dok je ovaj uslov tačan, ciklus se ponavlja. Na primjer:

int j = 7; do( System.out.println(j); j--; ) while (j > 0);

U ovom slučaju, kod petlje će se pokrenuti 7 puta dok j ne bude nula. Važno je napomenuti da do petlja garantuje da će akcije biti izvršene barem jednom, čak i ako uslov u naredbi while nije tačan. Dakle, možemo napisati:

int j = -1; do( System.out.println(j); j--; ) while (j > 0);

Iako je j u početku manje od 0, petlja će se i dalje izvršiti jednom.

while petlja

Dok petlja odmah provjerava istinitost nekog uslova, a ako je uslov tačan, tada se izvršava kod petlje:

int j = 6; dok (j > 0)( System.out.println(j); j--; )

nastavak i prekid izjava

Naredba break vam omogućava da izađete iz petlje u bilo kojem trenutku, čak i ako petlja nije završila svoj rad:

Na primjer:

< nums.length; i++){ if (nums[i] >10) prekid; System.out.println(nums[i]); )

Pošto petlja provjerava da li je element niza veći od 10, nećemo vidjeti posljednja dva elementa na konzoli, jer kada je nums[i] veći od 10 (tj. jednak 12), naredba break će raditi i petlja će se završiti.

Istina, nećemo vidjeti ni posljednji element, koji je manji od 10. Sada ćemo napraviti tako da ako je broj veći od 10, petlja se ne završava, već jednostavno ide na sljedeći element. Da bismo to učinili, koristimo naredbu continue:

int brojevi = novi int (1, 2, 3, 4, 12, 9); za (int i = 0; i< nums.length; i++){ if (nums[i] >10) nastaviti; System.out.println(nums[i]); )

U ovom slučaju, kada petlja dostigne broj 12, koji ne zadovoljava testni uslov, program će jednostavno preskočiti ovaj broj i preći na sljedeći element niza.

Kao gotovo svaki programski jezik, Java ima alate za ponavljanje određenog dijela koda iznova i iznova. Takvi alati se nazivaju ciklusi. Petlje u Javi su predstavljene naredbama kao što su while i for, kao i njihovim varijacijama. Petlje se obično koriste za iteraciju kroz jednodimenzionalne i višedimenzionalne nizove i strukture podataka kako bi se pronašli određeni elementi i zatim operirali s njima. Ali ovo je daleko od jedinog načina da se koristi alat kao što je Java petlja. Kako se razmatraju, dat će se primjeri korištenja.

Java while petlja: opis i primjeri

Dok je osnovna izjava petlje u Javi. Fragment koda zatvoren u njegovo tijelo će se ponavljati sve dok uvjet izraza zatvorenog u zagrade nakon što zadovolji pravu vrijednost. Operator while općenito ima sljedeći oblik: while (uslov)(//tijelo petlje). Čim vrijednost logičkog uvjeta prestane biti istinita, kod zatvoren u tijelu petlje će prestati da se izvršava. Kontrola će se prenijeti na liniju koja dolazi odmah nakon nje. Ako postoji samo jedna izjava u tijelu petlje, vitičaste zagrade se mogu izostaviti. Međutim, među programerima se smatra dobrom praksom da ih uvijek imaju uključene. Uzmimo primjer:

javna klasa dokDemo(

System.out.println("Štampanje brojeva od 1 do 10");

dok (broj<=10) {

System.out.println(count);

Inicijalno deklarirana varijabla count ima vrijednost 1. Zatim vidimo logički izraz, koji je zatvoren u zagradama iza imena operatora. Ako je vrijednost istinita, onda će petlja vratiti true sve dok vrijednost varijable count ne bude jednaka ili manja od 10. Sa svakim prolazom ili iteracijom, vrijednost varijable će se povećati za 1 i prikazati na ekranu konzole. Kada je vrijednost varijable dostigla vrijednost 11, petlja je prekinuta. Ako je vrijednost varijable count inicijalno 11, tada bi uvjet petlje bio netačan. Program ne bi ni ušao u tijelo. Treba napomenuti da Java sintaksa omogućava korištenje while naredbe bez tijela. Razmotrite sljedeći primjer. Pretpostavimo da imate dvije varijable: i=100 i j=200. Suočeni smo sa zadatkom da programski izračunamo njihovu aritmetičku sredinu; u tu svrhu možete koristiti “praznu” while petlju:

Dok (++i<- — j);

Kao rezultat ove operacije, vrijednost bilo koje od ove dvije varijable će biti jednaka prosjeku njihovih početnih vrijednosti. Kao što možete vidjeti u ovom primjeru, petlja je dobro radila bez tijela i izvršila je sve potrebne radnje u uslovnom izrazu.

uradi-while petlja

U prethodnim primjerima, ako je izraz uvjeta vratio false, tada je program ignorirao tijelo petlje i nastavio dalje izvršavanje. Ali ponekad se javljaju situacije kada je izvršenje koda sadržanog u tijelu petlje obavezno barem jednom, bez obzira na istinitost izraza uvjeta. Drugim riječima, ponekad se desi da je potrebno provjeriti istinitost uslovnog izraza na početku, a ne na kraju petlje. Sličnu funkcionalnost može pružiti neka vrsta while petlje s uslovnim imenom do-while. Ima sljedeći oblik: do (// tijelo petlje) while (uslov). Kao što vidite, ovdje se prvo izvršava tijelo petlje, a zatim se provjerava istinitost uslova. Ovo se radi u svakoj iteraciji. Gornji kod će raditi na isti način kao u slučaju while. Ali ako bismo postavili varijablu brojanja na 11, tijelo petlje bi se ipak izvršilo jednom prije nego što bi izjava mogla testirati istinitost izraza.

Primjeri i opis: for - Java petlja

Petlja for je svestran i efikasan oblik jezika u jeziku Java. Sve do verzije 5 JavaSDK-a, postojao je samo jedan tradicionalni oblik for izjave. Nakon njega pojavio se novi - foreach. U ovom dijelu ćemo se fokusirati na tradicionalni oblik operatora. For petlja u Javi izgleda ovako:

za (inti=0; i<10; i++) {//Loop statements to be executed

Prije nego što se kontrola prenese na kod na kraju petlje, inicijalizira se varijabla i, koja djeluje kao brojač. Zatim morate provjeriti uvjetni izraz u kojem je brojač upoređen sa određenom vrijednošću. Ako program vrati true, izvršava se tijelo petlje. U isto vrijeme, vrijednost brojača se mijenja za korak koji je unaprijed specificiran i uvjetni izraz se ponovo provjerava. Ovo se nastavlja sve dok uslov ne postane lažan. Za bolje razumijevanje, evo primjera kako Java for petlja funkcionira.

javna klasa ForLoops(

public static void main(String args)(

intend_value=11;

za [j] = (i+l)*(j+l) ; // koristiti for-each stil za petlju za prikaz
// i zbrajanje vrijednosti
za (int x : brojevi) (
for(int y: x) (
System.out.println("Vrijednost je: " + y);
suma += y;
}
}
System.out.println("Zbroj: " + zbroj);
}

Ovaj program generiše sljedeći izlaz:

Vrijednost je: 1
Vrijednost je: 2
Vrijednost je: 3
Vrijednost je: 4
Vrijednost je: 5
Vrijednost je: 2
Vrijednost je: 4
Vrijednost je: 6
Vrijednost je: 8
Vrijednost je: 10
Vrijednost je: 3
Vrijednost je: 6
Vrijednost je: 9
Vrijednost je: 12
Vrijednost je: 15
Količina: 9 0

Sljedeća linija ovog programa zaslužuje posebnu pažnju:

za (int x : brojevi) (

Obratite pažnju na način na koji je x deklarisan. Ova varijabla je referenca na jednodimenzionalni niz cjelobrojnih vrijednosti. Ovo je neophodno jer je rezultat svake iteracije for petlje sljedeći niz u nizu nums, počevši od niza specificiranog elementom nums. Unutrašnja for petlja zatim iterira kroz svaki od ovih nizova, prikazujući vrijednosti svakog od elemenata.

Korištenje poboljšane for petlje

Budući da svaki "za-svaki" stil za izraz može samo iterirati preko elemenata niza uzastopno, počevši od prvog i završavajući s posljednjim, moglo bi se činiti da je njegova upotreba ograničena. Međutim, nije. Mnogi algoritmi zahtijevaju korištenje ovog posebnog mehanizma. Jedan od najčešće korišćenih algoritama je pretraga. Na primjer, sljedeći program koristi for petlju da traži vrijednost u neuređenom nizu. Pretraživanje se zaustavlja nakon pronalaženja željene vrijednosti.

// Pretražujte niz koristeći for-each stil za petlju.
classSearch(
public static void main (String args) (
int brojevi = ( 6, 8, 3, 7, 5, 6, 1, 4);
intval=5;
logički pronađen = lažno;
// koristeći for petlju u for-each stilu
za (int x: brojevi) (
ako (x == val) (
pronađeno = istina;
break;
}
}
ako (pronađeno)
System.out.println("Pronađena vrijednost!");)

U ovom slučaju, izbor stila "za-svakog" za petlju for ima savršenog smisla, jer pretraživanje neuređenog niza uključuje ponavljanje kroz svaki element u nizu. (Naravno, da je niz uređen, binarno pretraživanje bi se moglo koristiti, što bi zahtijevalo drugačiji stil petlje za implementaciju.) minimalna ili maksimalna vrijednost u skupu, traženje duplikata, itd.



Trebate obraditi mnogo podataka iste vrste? Trebate izračunati red? Trebate množiti matrice? Sve ovo i još mnogo toga pomoći će da se napravi ciklus! 🙂 Svi računarski sistemi su prvobitno zamišljeni da bi se olakšala obrada podataka. A obradu velike količine podataka nemoguće je ni zamisliti bez ciklusa.

Općenito, petlje u programiranju se obično dijele u tri grupe. Prva grupa su ciklusi sa brojačem. U njima se tijelo petlje izvršava određeni broj puta, što je inicijalno navedeno od strane programera. Takva petlja mora se izvršiti određeni broj puta. Druga grupa su ciklusi sa preduslovom. U njima se tijelo petlje izvršava tek nakon provjere nekog uslova i biće izvršeno sve dok je ovaj uslov istinit. Takve petlje se ne mogu izvršiti čak ni jednom (ako je uslov u početku netačan). A treća grupa ciklusa su ciklusi sa postuslovom. U njima se prvo izvršava tijelo petlje, a zatim se provjerava uvjet. Ova petlja će se izvršiti najmanje jednom.

Počnimo s ciklusom sa brojačem. U Javi, ovo je for petlja; Generalno, može se napisati ovako:

For (početni uvjet; krajnji uvjet; promjena) ( tijelo petlje; )

Dakle, ako želimo izvršiti neku radnju 10 puta, onda moramo napisati sljedeće:

Za (int i = 0; i<10; i++) { System.out.println(i); }

takav program će uzastopno prikazati brojeve od nula do devet. Malo detaljnije, jednostavno kreiramo novu varijablu i i dodijelimo joj početnu vrijednost 0 (int i = 0;). Zatim specificiramo da se petlja izvršava do i< 10 и указываем каким образом должно изменяться i после каждой итерации цикла (i++).

Oni koji su programirali na Pascalu će cijeniti ovu priliku:

int k = 15; za (float i = 0; i

U ovom primjeru, vrijednost varijable i će se povećati za 1,5 na svakoj iteraciji. Možete provjeriti :).

Sljedeći ciklus u redu je dok. Ovo je petlja sa preduvjetom i općenito se može napisati ovako:

While (boolean izraz) ( radnje)

Pa, ako uzmemo radni primjer, onda će to izgledati otprilike ovako:

Dok (a<10) { System.Out.Print(a); a++; }

Dakle, jasno je da ovaj ciklus ima smisla koristiti ako ne znate tačno koliko je iteracija potrebno za postizanje cilja, ali tačno znate pod kojim uslovom će se vaš cilj postići. Takva konstrukcija možda nikada neće biti izvedena (na kraju krajeva, ovo je petlja sa preduslovom)! Koliko puta će se akcije u petlji izvršiti ovisi o vrijednosti koja je izvorno bila u varijabli a.

A treća vrsta ciklusa su ciklusi sa postuslovom. On je veoma sličan dok ... uradi samo ako je unutra dok ... uradi uslov se provjerava prije izvršenja tijela petlje, ovdje se uvjet provjerava nakon što se izvrši tijelo petlje. A to znači da će se petlja izvršiti barem jednom prije nego što se uvjet provjeri.

Petlja je dio programa koji se ponavlja mnogo puta.

Postoje dvije vrste petlji u Javi: tip "while" i tip "n-times".

Prvi tip "do" je dizajniran da ponavlja neku radnju dok se ne ispuni neki uslov. Primjer: povećavajte broj za 5 dok ne postane trocifren.

Drugi tip "n-puta" je dizajniran za ponavljanje nekih radnji unaprijed određeni broj puta. Primjer: pomnožite broj sam sa sobom 4 puta.

Dok petlja (while i do...while izjave)

Naredba while ponavlja navedene radnje sve dok je njen parametar istinit.

Na primjer, takva petlja će se izvršiti 4 puta, a na ekranu će se prikazati "1 2 3 4":

Int i = 1; dok (i< 5) { System.out.print(i + " "); i++; }

Takva petlja se nikada neće izvršiti i ništa se neće prikazati na ekranu:

Int i = 1; dok (i< 0) { System.out.print(i + " "); i++; }

Takva petlja će se izvršavati neograničeno, a na ekranu će se prikazati "1 2 3 4 5 6 7 ...":

Int i = 1; dok (true) (System.out.print(i + " "); i++; )

Uslov koji određuje da li će se petlja ponoviti provjerava se prije svakog koraka petlje, uključujući i prije samog prvog. Kažu šta se dešava pre-check uslovima.

Postoji while petlja sa post-verifikacija uslovima. Za njegovo pisanje koristi se konstrukcija do ... while.

Takva petlja će se izvršiti 4 puta, a na ekranu će se prikazati "2 3 4 5":

< 5);

Takva petlja će se izvršiti 1 put, a na ekranu će se prikazati "2":

Int i = 1; do ( i++; System.out.print(i + " "); ) dok (i< 0);

Tijelo do...while petlje se izvršava najmanje jednom. Ovaj operator je pogodan za korištenje kada se neka radnja u programu mora izvršiti barem jednom, ali pod određenim uvjetima mora se ponoviti više puta.

Pogledajte sljedeći program (pogađa nasumični cijeli broj iz segmenta i traži od korisnika da ga pogodi unosom opcija sa tastature, dok korisnik ne pogodi broj, program će ga pitati, govoreći mu više ili manje od broja koji je pogodio od onoga što je korisnik unio):

Uvoz java.util.Scanner; public class Main ( public static void main(String args) ( // prog - broj koji je kreirao program // user - broj koji je unio korisnik int prog, user; // Generiraj nasumični cijeli broj od 1 do 10 prog = (int)(Math. random() * 10) + 1; System.out.println("Pogodio sam broj od 1 do 10, pogodi."); System.out.print("Unesite svoj broj: ") ; Scanner input = new Scanner( System.in); // Provjerite postoji li cijeli broj u ulaznom toku if(input.hasNextInt()) ( do ( // Pročitaj cijeli broj iz ulaznog toka user = input.nextInt( ); if(user == prog) ( System.out.println("Pogodili ste!"); ) else ( // Provjerite je li broj u rasponu if (korisnik > 0 && korisnik<= 10) { System.out.print("Вы не угадали! "); // Если число загаданное программой меньше... if(prog < user) { System.out.println("Моё число меньше."); } else { System.out.println("Моё число больше."); } } else { System.out.println("Ваше число вообще не из нужного отрезка!"); } } } while(user != prog); } else { System.out.println("Ошибка. Вы не ввели целое число!"); } System.out.println("До свиданья!"); } }

Napravite sljedeće promjene u programu:

    Program bi trebao misliti na broj ne iz segmenta, već cijeli broj iz segmenta iz [−10;10], isključujući nulu. U isto vrijeme, pokušajte osigurati da raspodjela slučajnih brojeva koje generiše program bude ujednačena (tj. u slučaju da nula ispadne, ne može se jednostavno zamijeniti nekim drugim brojem, na primjer, sa 1, jer je tada 1 će ispasti sa dvostruko većom vjerovatnoćom od ostalih brojeva).

    Program bi trebao upozoriti korisnika da je pogriješio u znaku ako je program pogodio pozitivan broj, a korisnik unio negativan. I obrnuto.

Tip petlje "n-puta" (izjava za)

Naredba for sadrži tri parametra. Prvi se zove inicijalizacija, drugi je uslov ponavljanja, a treći je iteracija.

For (inicijalizacija; stanje; iteracija) ( // tijelo petlje, tj. akcije koje se ponavljaju ciklički)

U prvom parametru obično se bira neka varijabla uz pomoć koje će se brojati broj ponavljanja petlje. To se zove brojač. Brojaču se daje neka početna vrijednost (oni pokazuju od koje vrijednosti će se promijeniti).

U drugom parametru je naznačeno neko ograničenje na brojaču (označuju na koju će se vrijednost promijeniti).

Treći parametar specificira izraz koji mijenja brojač nakon svakog koraka petlje. Obično je ovo povećanje ili smanjenje, ali možete koristiti bilo koji izraz gdje će brojaču biti dodijeljena neka nova vrijednost.

Prije prvog koraka petlje, brojaču se dodjeljuje početna vrijednost (inicijalizacija se vrši). Ovo se dešava samo jednom.

Prije svakog koraka petlje (ali nakon inicijalizacije) provjerava se uvjet ponavljanja, ako je istinit, tijelo petlje se još jednom izvršava. U isto vrijeme, tijelo petlje se ne može izvršiti čak ni jednom ako je uvjet netačan u vrijeme prve provjere.

Nakon završetka svakog koraka petlje i prije početka sljedećeg (a samim tim i prije provjere uvjeta ponavljanja), izvodi se iteracija.

Sljedeći program ispisuje brojeve od 1 do 100 na ekranu:

Za (int i = 1; i<= 100; i++) { System.out.print(i + " "); }

Sljedeći program ispisuje brojeve od 10 do −10 na ekranu:

Za (int s = 10; s > -11; s--) ( System.out.print(s + " "); )

Prikazani program prikazuje neparne brojeve od 1 do 33:

Za (int i = 1; i<= 33; i = i + 2) { System.out.print(i + " "); }

Prikazani program će izračunati zbir elemenata fragmenta sekvence 2, 4, 6, 8, ... 98, 100. Dakle:

int suma = 0; // Ovdje ćemo akumulirati rezultat za (int j = 2; j

Predstavljeni program će podići broj iz varijable a na prirodnu snagu od promenljive n:

Dvostruko a = 2; int n = 10; dupla rez = 1; // Ovdje ćemo akumulirati rezultat za (int i = 1; i<= n; i++) { res = res * a; } System.out.println(res);

Prikazani program će prikazati prvih 10 elemenata niza 2n+2, gdje je n=1, 2, 3…:

Za (int i = 1; i< 11; i++) { System.out.print(2*i + 2 + " "); }

Prikazani program će prikazati prvih 10 elemenata niza 2a n−1 +3, gdje je a 1 =3:

Int a = 3; za (i=1; i<=10;i++) { System.out.print(a + " "); a = 2*a + 3; }

U jednom ciklusu možete postaviti nekoliko brojača odjednom. U ovom slučaju, nekoliko izraza u iteraciji i u inicijalizaciji odvojeno je zarezima. Možete specificirati samo jedan uvjet ponavljanja, ali to može biti izraz koji sadrži nekoliko brojača odjednom.

Prikazani program će prikazati prvih 10 elemenata niza 2a n−1 -2, gdje je a 1 =3:

Za (int a=3, i=1; i<=10; a=2*a-2, i++) { System.out.print(a + " "); }

Prikazani program će prikazati sljedeći niz "0 -1 -4 -9 -16 -25":

Za (int a=0, b=0; a-b<=10; a++, b--) { System.out.print(a*b + " "); }

Rani prekid petlje (izjava o prekidu)

I petlja tipa "while" i petlja tipa "n-times" mogu se završiti prije roka ako pozovete operatora unutar tijela petlje break. U ovom slučaju, doći će do trenutnog izlaska iz petlje, čak ni trenutni korak neće biti dovršen (tj. ako je bilo nekih drugih izjava nakon prekida, oni se neće izvršiti).

Kao rezultat sljedećeg primjera, na ekranu će biti prikazani samo brojevi "1 2 3 4 End":

Za (int a=1; a

Kada program izvrši petlju po peti put (uđe u petlju sa brojačem jednakim 5), odmah će biti provjerena i uvjet pod kojim će se izvršiti naredba break će biti tačan. Ostatak tijela petlje (izlaz na ekran) se više neće proizvoditi: program će odmah nastaviti s izvršavanjem operacija navedenih nakon petlje i dalje.

Uz pomoć naredbe break, možete prekinuti namjerno beskonačnu petlju. Primjer (na ekranu će se prikazati “100 50 25 12 6 3 1 0” i nakon toga će se petlja zaustaviti):

int s = 100; while (true) (System.out.print(s + " "); s = s / 2; if(s == 0) (prekid; ) )

Ima smisla pozvati naredbu break samo kada se pojavi neki uslov, inače će petlja biti prekinuta prije rasporeda u svom prvom koraku.

int a; for (a=25; a>0; a--) (prekid; System.out.print(a + " "); ) System.out.print("a=" + a);

U gornjem primjeru, izlaz u petlji na ekran neće se desiti ni jednom, i to kada je varijabla a je prikazano na ekranu nakon petlje, ispostavilo se da se njegova vrijednost nikada nije promijenila, tj. "a=25" (i ništa drugo) će biti prikazano.

Obratite pažnju i na to da je varijabla deklarirana prije početka petlje. Kada je promenljiva deklarisana u parametrima petlje, ispostavilo se da je van nje nedostupna i u ovom slučaju je bilo potrebno saznati koju će vrednost brojač imati nakon završetka petlje.

Zadaci

    Napišite program koji prikazuje sve četverocifrene brojeve u nizu 1000 1003 1006 1009 1012 1015 ….

    Napišite program koji prikazuje prvih 55 elemenata niza 1 3 5 7 9 11 13 15 17 ….

    Napišite program koji prikazuje sve ne-negativne elemente niza 90 85 80 75 70 65 60 ….

    Napišite program koji prikazuje prvih 20 elemenata niza 2 4 8 16 32 64 128 ….

    Ispišite sve članove niza 2a n-1 -1, gdje je a 1 =2, koji su manji od 10000.

    Ispisati sve dvocifrene članove niza 2a n-1 +200, gdje je a 1 = -166.

    Napišite program koji izračunava faktorijel prirodnog broja n koji korisnik unese s tastature.

    Prikaz svih pozitivnih djelitelja prirodnog broja koje je korisnik unio s tastature.

    Provjerite je li prirodni broj koji je korisnik unio s tastature prost. Pokušajte ne izvoditi nepotrebne radnje (na primjer, nakon što ste pronašli barem jedan netrivijalni djelitelj, već je jasno da je broj složen i ne morate nastaviti s provjerom). Također imajte na umu da se najmanji djelitelj prirodnog broja n, ako postoji, nužno nalazi u segmentu.

    Napišite program koji prikazuje prvih 12 elemenata niza 2a n-2 -2, gdje je a 1 =3 i a 2 =2.

    Prikažite prvih 11 članova Fibonačijevog niza. Podsjećamo da su prvi i drugi član niza jednaki jedinicama, a svaki sljedeći je zbir prethodna dva.

    Za prirodni broj koji korisnik unese sa tastature, izračunajte zbir svih njegovih cifara (ne zna se unapred koliko će cifara biti u broju).

    U gradu N, putovanje tramvajem se obavlja na papirnim kartama. Svake sedmice tramvajska stanica naručuje rolu karata iz lokalne štamparije sa brojevima od 000001 do 999999. "Srećna" karta je ona u kojoj je zbir prve tri cifre broja jednak zbiru posljednje tri cifre, kao na primer na kartama sa brojevima 003102 ili 567576. Tramvajska stanica je odlučila da vlasniku svake srećne karte pokloni suvenir i sada se pita koliko će suvenira biti potrebno. Koristeći program, prebrojite koliko je sretnih listića u jednoj roli?

    City N ima veliko skladište sa 50.000 različitih polica. Za udobnost radnika, uprava skladišta je odlučila da u lokalnoj štampariji naruči ploču sa brojem od 00001 do 50000 za svaku policu, ali kada su ploče odštampane, ispostavilo se da štamparija nije štampala broj 2. zbog kvara, pa se sve tablice koje su sadržavale jednu ili više dvije (npr. 00002 ili 20202) - moraju prekucati. Napišite program koji će brojati koliko je ovih pogrešnih ploča bilo u neispravnoj seriji.

    Elektronski sat pokazuje vrijeme u formatu od 00:00 do 23:59. Izračunajte koliko se puta dnevno dogodi da se simetrična kombinacija prikaže lijevo od debelog crijeva za onu desno od debelog crijeva (na primjer, 02:20, 11:11 ili 15:51).

    U američkoj vojsci broj 13 se smatra nesrećnim, au japanskoj - 4. Prije međunarodnih vježbi, štab ruske vojske odlučio je isključiti brojeve vojne opreme koji sadrže brojeve 4 ili 13 (na primjer, 40123, 13313, 12345 ili 13040) kako ne bi osramotili strane kolege. Ako vojska raspolaže sa 100.000 jedinica vojne opreme, a svako borbeno vozilo ima broj od 00001 do 99999, koliko će onda brojeva morati biti isključeno?

2010, Aleksej Nikolajevič Kostin. Katedra za TIDM Matematičkog fakulteta Moskovskog državnog pedagoškog univerziteta.

Top Related Articles