diff options
Diffstat (limited to 'šola/p2/dn')
-rw-r--r-- | šola/p2/dn/BERIME.txt | 3 | ||||
-rw-r--r-- | šola/p2/dn/DN01a_63230317.c | 16 | ||||
-rw-r--r-- | šola/p2/dn/DN01a_63230317.kasnejša_sprememba_po_oddaji.c | 36 | ||||
-rw-r--r-- | šola/p2/dn/DN01b_63230317.c | 16 | ||||
-rw-r--r-- | šola/p2/dn/inverz.c | 30 | ||||
-rw-r--r-- | šola/p2/dn/tranzitivnost.c | 39 |
6 files changed, 87 insertions, 53 deletions
diff --git a/šola/p2/dn/BERIME.txt b/šola/p2/dn/BERIME.txt deleted file mode 100644 index b4dd127..0000000 --- a/šola/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/šola/p2/dn/DN01a_63230317.c b/šola/p2/dn/DN01a_63230317.c index da8e64b..f55755a 100644 --- a/šola/p2/dn/DN01a_63230317.c +++ b/šola/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/šola/p2/dn/DN01a_63230317.kasnejša_sprememba_po_oddaji.c b/šola/p2/dn/DN01a_63230317.kasnejša_sprememba_po_oddaji.c deleted file mode 100644 index f55755a..0000000 --- a/šola/p2/dn/DN01a_63230317.kasnejša_sprememba_po_oddaji.c +++ /dev/null @@ -1,36 +0,0 @@ -#include <stdio.h> -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/šola/p2/dn/DN01b_63230317.c b/šola/p2/dn/DN01b_63230317.c index 6952c95..88ef9a9 100644 --- a/šola/p2/dn/DN01b_63230317.c +++ b/šola/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/šola/p2/dn/inverz.c b/šola/p2/dn/inverz.c new file mode 100644 index 0000000..fe8e8b3 --- /dev/null +++ b/šola/p2/dn/inverz.c @@ -0,0 +1,30 @@ +// DN03a +/* + +Prevajanje in poganjanje: + +gcc -o test01 test01.c inverz.c -lm +./test01 + +*/ + +#include <stdio.h> +#include <stdbool.h> + +#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/šola/p2/dn/tranzitivnost.c b/šola/p2/dn/tranzitivnost.c new file mode 100644 index 0000000..3456631 --- /dev/null +++ b/šola/p2/dn/tranzitivnost.c @@ -0,0 +1,39 @@ +// DN03b +/* + +Prevajanje in poganjanje: + +gcc -o test01 test01.c tranzitivnost.c -lm +./test01 + +*/ + +#include <stdio.h> +#include <stdbool.h> +#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. |