Zadaci za vjezbu elektricne masine, transformatori
Zadaci za ponavljanje statistikaFull description
zadaci
Zadaci za vezbu: izrazi.
Descripción: dobro pogledati prednju str
termokemija
c++, juric, zadaci 3Full description
Vježbe
Kengur Zadaci Za 3 Odd
Matematoka
matematika takmicenjeFull description
MatematokaFull description
Descripción completa
elektrotehnika
Zadaci za osnovnu skolu iz raznih oblasti, priprema za prijemni, zavrsni, malu maturu
1-10Full description
zadaciFull description
Zadaci - programiranjeFull description
Full description
Descrição completa
Descripción completa
Zad1
Палиндром - Java
Задача 1 (2 / 3) Дадена е двојно поврзана листа со N јазли каде секој јазел содржи по еден карактер (буква). Да се провери дали двојно поврзаната листа е палиндром: односно ако ја изминете од почеток до крај и од крај до почеток, дали ќе добиете ист збор. Во првиот ред од влезот даден е бројот на јазли во листата N, а во вториот ред се дадени броевите. На излез треба да се испечати 1 ако листата е палиндром, -1 ако не е. Име на класата: PalindromeDLL import java.util.Scanner; class DLLNode { protected E element; protected DLLNode pred, succ; public DLLNode(E elem, DLLNode pred, DLLNode succ) { this.element = elem; this.pred = pred; this.succ = succ; } @Override public String toString() { return "<-" + element.toString() + "->"; } } class DLL { private DLLNode first, last; public DLL() { // Construct an empty SLL this.first = null; this.last = null; } public void deleteList() { first = null; last = null; } public int length() { int ret; if (first != null) { DLLNode tmp = first; ret = 1; while (tmp.succ != null) { tmp = tmp.succ; ret++;
} return ret; } else return 0; } public void insertFirst(E o) { DLLNode ins = new DLLNode(o, null, first); if (first == null) last = ins; else first.pred = ins; first = ins; } public void insertLast(E o) { if (first == null) insertFirst(o); else { DLLNode ins = new DLLNode(o, last, null); last.succ = ins; last = ins; } } public void insertAfter(E o, DLLNode after) { if (after == last) { insertLast(o); return; } DLLNode ins = new DLLNode(o, after, after.succ); after.succ.pred = ins; after.succ = ins; } public void insertBefore(E o, DLLNode before) { if (before == first) { insertFirst(o); return; } DLLNode ins = new DLLNode(o, before.pred, before); before.pred.succ = ins; before.pred = ins; } public E deleteFirst() { if (first != null) {
} return ret; } else return 0; } public void insertFirst(E o) { DLLNode ins = new DLLNode(o, null, first); if (first == null) last = ins; else first.pred = ins; first = ins; } public void insertLast(E o) { if (first == null) insertFirst(o); else { DLLNode ins = new DLLNode(o, last, null); last.succ = ins; last = ins; } } public void insertAfter(E o, DLLNode after) { if (after == last) { insertLast(o); return; } DLLNode ins = new DLLNode(o, after, after.succ); after.succ.pred = ins; after.succ = ins; } public void insertBefore(E o, DLLNode before) { if (before == first) { insertFirst(o); return; } DLLNode ins = new DLLNode(o, before.pred, before); before.pred.succ = ins; before.pred = ins; } public E deleteFirst() { if (first != null) {
DLLNode tmp = first; first = first.succ; if (first != null) first.pred = null; if (first == null) last = null; return tmp.element; } else return null; } public E deleteLast() { if (first != null) { if (first.succ == null) return deleteFirst(); else { DLLNode tmp = last; last = last.pred; last.succ = null; return tmp.element; } } // else throw Exception return null; } @Override public String toString() { String ret = new String(); if (first != null) { DLLNode tmp = first; ret += tmp + "<->"; while (tmp.succ != null) { tmp = tmp.succ; ret += tmp + "<->"; } } else ret = "Prazna lista!!!"; return ret; } public DLLNode getFirst() { return first; } public DLLNode getLast() { return last; }
} class PalindromeDLL { public static int isItPalindrome(DLL list){ DLLNode tmp=list.getFirst(); String s=new String(); while(tmp!=null){ s=s+tmp.element; tmp=tmp.succ; } String v=new String(); tmp=list.getLast(); while(tmp!=null){ v=v+tmp.element; tmp=tmp.pred; } int vrednost=-1; // if(s.equals(v)) //{ // vrednost=1; // } // return vrednost; return s.equals(v) ? 1 : -1 ; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); DLL list = new DLL(); for (int i = 0; i < n; i++) { list.insertLast(in.nextInt()); } in.close(); System.out.println(isItPalindrome(list)); } } Zad2
Војска - Java
Задача 2 (1 / 3) Пред командантот на војската наредени се сите војници и во двојно поврзана листа дадени се нивните ID-a. На командантот не му се допаѓа како се наредени војниците и решава да одбере два под-интервали од војници и да им ги замени местата, односно војниците што се наоѓаат во едниот под-интервал ќе ги смести во другиот, и обратно.
Влез: Во првиот ред даден е бројот на војници. Во вториот ред дадени се ID -то на секој од војниците. Во третиот ред дадени се два броеви, ID на првиот војник и ID на последниот војник од првиот интервал. Во четвртиот ред дадени се два броеви, ID на првиот војник и ID на последниот војник од вториот интервал. Излез: Да се испечати новиот редослед на војниците (т.е. на нивните ID -a) Забелешка 1: Интервалите никогаш нема да се преклопуваат и ќе содржат барем еден војник. Целата низа ќе содржи најмалку два војника. Забелешка 2: Обратете посебно внимание кога интервалите се еден до друг и кога некој од интервалите почнува од првиот војник или завршува со последниот војник. Име на класата: DLLVojska import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class DLLNode { protected E element; protected DLLNode pred, succ; public DLLNode(E elem, DLLNode pred, DLLNode succ) { this.element = elem; this.pred = pred; this.succ = succ; } @Override public String toString() { return "<-"+element.toString()+"->"; } }
class DLL { private DLLNode first, last; public DLL() { // Construct an empty SLL this.first = null; this.last = null; } public void deleteList() { first = null; last = null; } public int length() { int ret; if (first != null) {
DLLNode tmp = first; ret = 1; while (tmp.succ != null) { tmp = tmp.succ; ret++; } return ret; } else return 0; } public void insertFirst(E o) { DLLNode ins = new DLLNode(o, null, first); if (first == null) last = ins; else first.pred = ins; first = ins; } public void insertLast(E o) { if (first == null) insertFirst(o); else { DLLNode ins = new DLLNode(o, last, null); last.succ = ins; last = ins; } } public void insertAfter(E o, DLLNode after) { if(after==last){ insertLast(o); return; } DLLNode ins = new DLLNode(o, after, after.succ); after.succ.pred = ins; after.succ = ins; } public void insertBefore(E o, DLLNode before) { if(before == first){ insertFirst(o); return; } DLLNode ins = new DLLNode(o, before.pred, before); before.pred.succ = ins;
before.pred = ins; } public E deleteFirst() { if (first != null) { DLLNode tmp = first; first = first.succ; if (first != null) first.pred = null; if (first == null) last = null; return tmp.element; } else return null; } public E deleteLast() { if (first != null) { if (first.succ == null) return deleteFirst(); else { DLLNode tmp = last; last = last.pred; last.succ = null; return tmp.element; } } // else throw Exception return null; }
@Override public String toString() { String ret = new String(); if (first != null) { DLLNode tmp = first; ret += tmp + "<->"; while (tmp.succ != null) { tmp = tmp.succ; ret += tmp + "<->"; } } else ret = "Prazna lista!!!"; return ret; } public DLLNode getFirst() { return first;
public static void main(String[] args) throws IOException { DLL lista = new DLL(); BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); String s = stdin.readLine(); int N = Integer.parseInt(s); s = stdin.readLine(); String[] ids = s.split(" "); for (int i = 0; i < N; i++) { lista.insertLast(Integer.parseInt(ids[i])); } s = stdin.readLine(); String interval[] = s.split(" "); int a = Integer.parseInt(interval[0]);
int b = Integer.parseInt(interval[1]); s = stdin.readLine(); interval = s.split(" "); int c = Integer.parseInt(interval[0]); int d = Integer.parseInt(interval[1]);
Задача 3 (1 / 2) Дадена е двојно поврзана листа од двојно поврзани листи. Да се најде сума на секоја од подлистите, а потоа производ на овие суми Влез: Број N кој кажува колку листи има Број М кој кажува колку елементи има во секоја листа Во следните М линии се податоците 1<=A<=1000за секоја од листите ( Излез: Еден број што е производот на сумите од низите. Со седум децимали. Пример влез: 3 4 1 2 3 4 2 3 4 5 6 7 8 9 Излез: 1400
import java.util.Iterator; import java.util.Scanner; class DLLNode{ protected E element; protected DLLNode pred,succ; public DLLNode(E element, DLLNode pred, DLLNode succ) { this.element = element; this.pred = pred; this.succ = succ; } } class DLL{ protected DLLNode first, last; public DLL() { this.first = null; this.last = null; }
public void insertFirst(E o){ DLLNode tmp=new DLLNode(o, null, null); if(first==null){ first=tmp; last=tmp; } else if(first!=null){ tmp.succ=first; first.pred=tmp; first=tmp; } } public void insertLast(E o){ DLLNode tmp=new DLLNode(o, null, last); if(first==null){ insertFirst(o); } else{ tmp.pred=last; last.succ=tmp; tmp.succ=null; last=tmp; } } public void pecati(){ DLLNode tmp=first; while(tmp!=null){ System.out.print(tmp.element); System.out.print("<->"); tmp=tmp.succ; } System.out.println(); } public Iterator iterator () { // vraka iterator koj gi posetuva site elementi na listata od levo na desno return new LRIterator(); } private class LRIterator implements Iterator { private DLLNode prev,curr,place; public LRIterator(){ place=(DLLNode)first; curr=null; } public boolean hasNext() {
return (place != null); } public E next(){ //if(place==null) throw new NoSuchFieldException(); E nextelem =place.element; curr=place; place=place.succ; return nextelem; } @Override public void remove() { throw new UnsupportedOperationException("Not supported yet."); } } } class ListaOdListi { public static long findMagicNumber(DLL> list) { int suma=0; long proizvod=1; DLLNode> tmp=list.first; while(tmp!=null){ suma=0; DLLNode tmp2=tmp.element.first; while(tmp2!=null){ suma+=tmp2.element; tmp2=tmp2.succ; } proizvod*=suma; tmp=tmp.succ; } return proizvod; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); DLL> list = new DLL>(); for (int i = 0; i < n; i++) { DLL tmp = new DLL(); for (int j = 0; j < m; j++) { tmp.insertLast(in.nextInt()); }
Задача 4 (2 / 24) Дадена е равенката: [ x ^2+s(x)+200\ cdot x=N ] каде што (x), (N) се природни броеви, а (s(x)) е функција која што го дава збирот на цифри на бројот (x). Даден е и бројот (N) и два природни броеви (A) и (B), каде што (A \ leq B) и (A, B \ leq 1,000,000,000). Потребно е да проверите дали постои природен број (x) во опсегот ([A, B]) така што е задоволена равенката, и ако постои тогаш треба да се врати како резултат. Ако таков природен број (x) во опсегот ([A, B]) што ја задоволува равенката не постои, тогаш се враќа -1. Име на класата: Range import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Scanner; import java.util.StringTokenizer; class Range { static long zbir_na_cifri(long n) { long c = 0, suma = 0; while (n != 0) { c = n % 10; suma = suma + c; n /= 10; } return suma; } /* static long proveri(long N, long A, long B) { long X = 0, i; for (i = A; i < B; i++) { long c = 0, suma = 0; long n=i; while (n != 0) { c = n % 10; suma = suma + c; n /= 10; } X = i * i + suma + 200 * i; if (X == N) { break; } // System.out.println("\t"+i);
} if(i==B) return -1; else return i; }*/ /* static long proveripola(long N, long A, long B) { long X = 0, i; for (i = A; i < B; i++) { long c = 0, suma = 0; long n=i; while (n != 0) { c = n % 10; suma = suma + c; n /= 10; } X = i * i + suma + 200 * i; if (X == N) { break; } } if(i==B) return -1; else return i; } static long proveri(long N, long A, long B,int abs) { long pola; // if(B<10000000) { // return proveripola(N, A, B); // } pola=(B/2*B/2)+zbir_na_cifri(B/2)+200*B/2; if(pola>N&&abs==0){//B/2>1milion proveri(N,A,B/2,0); } while(pola
long l,d,mid; l=A; d=B; mid = (l + d) / 2; pola=(mid*mid)+zbir_na_cifri(mid)+200*mid; int vlez=0; if(pola==N){ // System.out.println(proveripola(N, l, d)); System.out.println(mid); // return mid; // vlez=1; return ; } if(A==B){ System.out.println("-1"); // return -1; // vlez=1; return ; } if(pola>N){ proveri(N,l,mid); } else if(pola
Автобус - Java
Задача 5 (1 / 4)
На автобуската станица во ФинТаун имало N возрасни и M деца кои што сакале да патуваат заедно за соседниот град МинТаун. Цената на еден билет е 100 денари. Ако некој возрасен сака да патува со k деца, треба да плати еден билет за него и k -1 билети за децата (за едно дете не мора да плаќа билет). Исто така, возрасен може да се вози и сам, во тој случај ќе си плати еден билет за него. Дополнително знаеме дека децата не можат да се возат без да се придружени од некој возрасен. Во првиот ред од влезот е даден бројот N. Во вториот ред е даден бројот M. Потребно е да пресметате колкав е минималниот и максималниот број на денари што може да ги платат патниците за билети и да ги испечатите во две линии. Во автобусот ќе има најмалку еден возрасен. Име на класата: Bus import java.io.BufferedReader; import java.io.InputStreamReader; public class Bus { public static void main(String[] args) throws Exception { int i,j,k; int minSuma=0; int maxSuma=0; BufferedReader br = new BufferedReader(new I nputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int M = Integer.parseInt(br.readLine()); br.close(); if(M==0) maxSuma=N*100; else maxSuma=(N+M-1)*100; if(N==M) minSuma=N*100; if(N>M) minSuma=N*100; else minSuma=M*100; System.out.println(minSuma); System.out.println(maxSuma);
} } Zad6
Најдолга опаѓачка секвенца
- Java
Задача 6 (3 / 6) Најди ја најдолгата опаѓачка секвенца во една низа. Броевите во секвенцата не мора да се наоѓаат на последователни индекси во низата.