From ad96c7d3ba422133c7367b8454e42cc0796a497d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Sat, 16 Mar 2024 14:50:42 +0100 Subject: P2: popravljena DN01 in izdelani DN02 in DN03 --- "\305\241ola/p2/dn/BERIME.txt" | 3 -- "\305\241ola/p2/dn/DN01a_63230317.c" | 16 +++++---- ...63230317.kasnej\305\241a_sprememba_po_oddaji.c" | 36 -------------------- "\305\241ola/p2/dn/DN01b_63230317.c" | 16 +++++---- "\305\241ola/p2/dn/inverz.c" | 30 +++++++++++++++++ "\305\241ola/p2/dn/tranzitivnost.c" | 39 ++++++++++++++++++++++ 6 files changed, 87 insertions(+), 53 deletions(-) delete mode 100644 "\305\241ola/p2/dn/BERIME.txt" delete mode 100644 "\305\241ola/p2/dn/DN01a_63230317.kasnej\305\241a_sprememba_po_oddaji.c" create mode 100644 "\305\241ola/p2/dn/inverz.c" create mode 100644 "\305\241ola/p2/dn/tranzitivnost.c" diff --git "a/\305\241ola/p2/dn/BERIME.txt" "b/\305\241ola/p2/dn/BERIME.txt" deleted file mode 100644 index b4dd127..0000000 --- "a/\305\241ola/p2/dn/BERIME.txt" +++ /dev/null @@ -1,3 +0,0 @@ -Medtem ko so rešitve DN v mapi ../p1/dn ustrezne (pravilne), rešitve tu niso, ker jih pred oddajo nisem preverjal s skritimi testnimi primeri, ampak sem jih samo oddal. - -Recimo za prvo nalogo sem dobil nič točk, zato pazite, ko te rešitve uporabljate za učenje -- morda so napačne! diff --git "a/\305\241ola/p2/dn/DN01a_63230317.c" "b/\305\241ola/p2/dn/DN01a_63230317.c" index da8e64b..f55755a 100644 --- "a/\305\241ola/p2/dn/DN01a_63230317.c" +++ "b/\305\241ola/p2/dn/DN01a_63230317.c" @@ -18,14 +18,16 @@ void printInt (int a) { a = -a; putchar('-'); } - int števke[29]; - int len = 0; - while (a > 0) { - števke[len++] = a%10; - a /= 10; + int l = 1; + int c = a/10; + while (c > 0) { + l *= 10; + c /= 10; + } + while (l) { + putchar('0'+(a/l)%10); + l /= 10; } - for (int i = len-1; i >= 0; i--) - putchar('0'+števke[i]); } int main (void) { printInt(nextInt()+nextInt()); diff --git "a/\305\241ola/p2/dn/DN01a_63230317.kasnej\305\241a_sprememba_po_oddaji.c" "b/\305\241ola/p2/dn/DN01a_63230317.kasnej\305\241a_sprememba_po_oddaji.c" deleted file mode 100644 index f55755a..0000000 --- "a/\305\241ola/p2/dn/DN01a_63230317.kasnej\305\241a_sprememba_po_oddaji.c" +++ /dev/null @@ -1,36 +0,0 @@ -#include -int nextInt () { - int r = 0; - int minus = 0; - for (int števka = '0'; števka == '-' || (števka <= '9' && števka >= '0'); števka = getchar()) { - if (števka == '-') { - if (r != 0) - break; - minus = !minus; - continue; - } - r = r*10+števka-'0'; - } - return minus ? -r : r; -} -void printInt (int a) { - if (a < 0) { - a = -a; - putchar('-'); - } - int l = 1; - int c = a/10; - while (c > 0) { - l *= 10; - c /= 10; - } - while (l) { - putchar('0'+(a/l)%10); - l /= 10; - } -} -int main (void) { - printInt(nextInt()+nextInt()); - putchar('\n'); - return 0; -} diff --git "a/\305\241ola/p2/dn/DN01b_63230317.c" "b/\305\241ola/p2/dn/DN01b_63230317.c" index 6952c95..88ef9a9 100644 --- "a/\305\241ola/p2/dn/DN01b_63230317.c" +++ "b/\305\241ola/p2/dn/DN01b_63230317.c" @@ -4,14 +4,16 @@ void printInt (int a) { a = -a; putchar('-'); } - int števke[29]; - int len = 0; - while (a > 0) { - števke[len++] = a%10; - a /= 10; + int l = 1; + int c = a/10; + while (c > 0) { + l *= 10; + c /= 10; + } + while (l) { + putchar('0'+(a/l)%10); + l /= 10; } - for (int i = len-1; i >= 0; i--) - putchar('0'+števke[i]); } int main (void) { while (getchar() == '0'); diff --git "a/\305\241ola/p2/dn/inverz.c" "b/\305\241ola/p2/dn/inverz.c" new file mode 100644 index 0000000..fe8e8b3 --- /dev/null +++ "b/\305\241ola/p2/dn/inverz.c" @@ -0,0 +1,30 @@ +// DN03a +/* + +Prevajanje in poganjanje: + +gcc -o test01 test01.c inverz.c -lm +./test01 + +*/ + +#include +#include + +#include "inverz.h" + +long inverz (long x, long a, long b) { + while (true) { + if (f(a) == x) + return a; + if (f((a+b)/2) < x) { + a = (a+b)/2+1; + continue; + } + b = (a+b)/2; + continue; + } +} + +// Ta datoteka NE SME vsebovati funkcij main in f! +// Funkciji main in f sta definirani v datoteki test01.c. diff --git "a/\305\241ola/p2/dn/tranzitivnost.c" "b/\305\241ola/p2/dn/tranzitivnost.c" new file mode 100644 index 0000000..3456631 --- /dev/null +++ "b/\305\241ola/p2/dn/tranzitivnost.c" @@ -0,0 +1,39 @@ +// DN03b +/* + +Prevajanje in poganjanje: + +gcc -o test01 test01.c tranzitivnost.c -lm +./test01 + +*/ + +#include +#include +#include "tranzitivnost.h" + +int tranzitivnost (int a, int b) { + bool enica = true; + bool antitranz = true; + bool tranz = true; + for (int i = a; i <= b; i++) + for (int j = a; j <= b; j++) + for (int k = a; k <= b; k++) + if (f(i,j) && f(j,k)) { + enica = false; + if (!f(i,k)) + tranz = false; + if (f(i,k)) + antitranz = false; + } + if (enica) + return 1; + if (tranz) + return 2; + if (antitranz) + return 3; + return 4; +} + +// Ta datoteka NE SME vsebovati funkcij main in f! +// Funkciji main in f sta definirani v datoteki test01.c. -- cgit v1.2.3