1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include <stdio.h>
#include <stdlib.h>
#define DISABLE_LIB_TESTS
#include <mnozi.c>
#define MAX_SIRINA 80*(24-3) /* zapolnimo malo teminalsko okno */
#define MAX_SIRINA_S "1680" /* = 80 * 21; nastavi tudi to za format stavek */
int main (int argc, char ** argv) {
if (argc != 1+2) {
fprintf(stderr, "uporaba: %s <Številka> (^) <Številka>\nprimer za izračun 2^1000: %s 2 1000\n", argv[0], argv[0]);
return 1;
}
unsigned long long int n = strtoull(argv[1], NULL, 10);
unsigned long long int m = strtoull(argv[2], NULL, 10);
if (m == 0) {
fprintf(stderr, "KARKOLI NA NIČ JE ENA! (reci to računalniku)\n");
return 2;
}
char * z = malloc(sizeof(char)*(MAX_SIRINA + 1)); // + 1 za \0
unsigned int l = MAX_SIRINA;
unsigned long long int s = 0; // Seštevek števk
sprintf(z, "%0" MAX_SIRINA_S "llu", n);
z[MAX_SIRINA] = '\0';
for (; m > 1; m--)
// fprintf(stderr, "\rpreostane še %llu operacij ...", m);
mnozi (n, z, l);
for (m = 0; m < MAX_SIRINA; m++) // sicer je m itak že 0 ampak okej
s = s + (z[m] - '0');
fprintf(stdout, "\rkonec računanja. seštevek števk v rezultatu je %llu, število je\n%s\n", s, z);
return 0;
}
|