OKRUŽNA TAKMIČENJE IZ INFORMATIKE - ZADACI
Takođe, možete prethodno uraditi zadatke sa kvalifikacija za okružna takmičenja
OKRUŽNO TAKMIČENJE IZ INFORMATIKE - 2016
1. Proizvod
Ulaz:
795
Izlaz:
665
Ulaz:
100
Izlaz:
0
Ulaz:
105
Izlaz:
50
#include < iostream >
using namespace std ;
int main()
{
int N, a, b, P=1, P2=1;
cin >> N;
a=N/10;
b=N%10;
P=a*b;
a=N/100;
b=N%100;
P2 = a*b;
if(P > P2){
cout << P << endl;
}
else{
cout << P2 << endl;
}
return 0;
}
2. Konkurs
Na standardnom ulazu se u jednom redu zadaju tri para prirodnih brojeva (koji nisu veći od 1000). Prvi par brojeva čine dve ocene za prvog programera, drugi par brojeva su ocene za drugog programera, treći par brojeva čine dve ocene za trećeg programera.
Primer 1
Izlaz
Na standardnom izlazu se ispisuje jedno od slova A, B ili C, u zavisnosti od toga koji programer je pobednik. Slovo A se ispisuje ako je pobedio prvi programer, slovo B se ispisuje ako je pobedio drugi programer, slovo C se ispisuje ako je pobedio treći programer.
Ulaz:
5 6 7 4 5 3
Izlaz:
B
Primer 2
Ulaz:
14 18 17 7 18 7
Izlaz:
B
#include < iostream >
using namespace std ;
int main()
{
int A1,A2,A3,B1,B2,B3,Z1,Z2,Z3;
scanf("%d%d",&A1,&B1);
scanf("%d%d",&A2,&B2);
scanf("%d%d",&A3,&B3);
Z1=A1+B1;
Z2=A2+B2;
Z3=A3+B3;
if(Z1 > Z2 && Z1 > Z3){
printf("%c",'A');
}
else if(Z2 > Z1 && Z2 > Z3){
printf("%c",'B');
}
else if(Z3>Z2 && Z3 > Z1){
printf("%c",'C');
}
else if(Z1==Z2 && Z1 > Z3){
printf("%c",'A');
}
else if(Z2 > Z1 && Z2 == Z3){
printf("%c",'B');
}
else if(Z3 > Z2 && Z3 == Z1){
printf("%c",'C');
}
return 0;
}
3. Lepota
U prvoj liniji standardnog ulaza data su dva cela broja m i n razdvojeni blanko karakterom.
Izlaz
Na standardnom izlazu ispisati jedan ceo broj koji predstavlja broj prelepih brojeva u datom segmentu.
Ograničenja
0 ≤ m ≤ n ≤ 10 000 000
Primer
Ulaz
90 91
Izlaz
2
Za svaki broj između m i n izvršiti proveru da li je broj "lep", tj. da li je sa svim ciframa međusobno različitim. Napraviti posebnu metodu za proveru. U for petlji menjati brojeve u intervalu od m do n i vršiti za svaki broj proveru, pozivanjem prethodno napravljene metode. Ako metoda "provera" vrati tačno onda povećati vrednost brojača za 1. Brojač je celobrojna promenljiva čija se vrednost prikazuje na izlazu.
Metoda za proveru:
Koristiti ugnježdene petlje. Unutar spoljnje menjati broj za proveru, tako što je u početnom ciklusu broj za proveru jednak početnom, a u svakom narednom broj je skraćen za jednu cifru sa desne strane. Npr. ako je početni broj 123345, u 1. ciklusu analiziramo taj broj, u 2. ciklusu broj za analizu 12334, u 3. 1233 itd. Cifra sa desne strane može se ukloniti deljenjem sa 10.
Unutrašnja petlja:
Broj koji analiziramo podelimo na dva dela, cifra desno i ostatak broja. Npr. 123345 delimo na cifru 5 i ostatak 12334. Dalje kroz petlju poredimo u svakom ciklusu tu cifru sa ciframa broja 12334 i to s desna na levo. Cifru izvlašimo iz broja koristeći ostatak deljenja sa 10 npr. cifra=12334%10, a zatim skratimo broj sa 10, tako da u sledećem ciklusu bude 12334/10 = 1233. Petlja traje sve dok ostatak bude veći od 0.
#include < iostream >
using namespace std ;
bool proveri(long int n)
{
bool r=true;
long int br1,cif;
long int br=n;
while(br != 0)
{
br1=br/10;
cif=br%10;
while(br1!=0)
{
long int cifI=br1%10;
if(cifI==cif)
{
r=false;
}
br1=br1/10;
}
if(!r){
break;
}
br=br/10;
}
return r;
}
int main()
{
long int m,n,p=0; cin >> m >> n;
if(m==n && m==0)
{
p=0;
}
for(int i=m; i<=n; i++)
{
if(proveri(i))
{
p++;
}
}
cout << p << endl;
return 0;
}