Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int gcd (int a,int b)
- {
- if (b==0)
- return a;
- else
- return gcd(b, a % b);
- }
- int LCM (int a,int b) {
- return (abs(a * b) / gcd(a, b));
- }
- int main(void) {
- double length,width;
- int a=1,b=1,zle=1, l, ll, hodnota, width2, length2,d,s,il, ill,y,x,nova;
- double p[a],z[b], nahrada,nahrada2;
- printf("Minimalni velikost:\n");
- if ((scanf(" %lf %lf", &length, &width)) != 2) {
- printf("Nespravny vstup.");
- return 1;
- }
- if (10000000 < length || width <= 0) {
- printf("Nespravny vstup.");
- return 1;
- }
- length2=length*10;
- width2=width*10;
- printf("Dlazdicky:\n");
- while ((hodnota=(scanf("%lf %lf", &p[a],&z[b]))) && !feof(stdin)) {
- il= p[a - 1]*10;
- ill= z[b - 1]*10;
- l = p[a] * 10;
- ll = z[b] * 10;
- if (hodnota!=2) {
- printf("Nespravny vstup.");
- zle = 0;
- break;
- }
- if (((p[a] * 10) != l) || ((z[b] * 10) != ll)) {
- printf("Nespravny vstup.");
- zle = 0;
- break;
- }
- d=ll;
- s=ll;
- if (a==1 && b==1) {
- while (d<length2){
- d=d+(l+ll);
- }
- }
- if (a==1 && b==1) {
- while (s<width2){
- s=s+(l+ll);
- }
- }
- if ((a==2) && (b==2)) {
- while (d != length2) {
- if (d<length2) (d = d + (l + ll));
- if (d > length2) (length2 = length2 + (ill+il));
- if (100000000 < length2) break;
- }
- }
- if ((a==2) && (b==2)) {
- while (s != width2) {
- if (s<width2) (s = s + (l + ll));
- if (s > width2) (width2 = width2 + (ill+il));
- if (width2 > 100000000) break;
- }
- }
- if ((a>2) && (b>2)) {
- while (d != length2) {
- if (d<length2) (d = d + (l + ll));
- if (d > length2) (length2 = length2 + (nova));
- if (100000000 < length2) break;
- }
- }
- if ((a!=1) && (b!=1)) {
- while (s != width2) {
- if (s<width2) (s = s + (l + ll));
- if (s > width2) (width2 = width2 + (nova));
- if (width2 > 100000000) break;
- }
- }
- length2=d;
- width2=s;
- if ( (il+ill)>(ll+l) )
- {x=(il+ill); y=(ll+l);}
- else
- {x=(ll+l); y=(il+ill);}
- nova=LCM(x,y);
- a++;
- b++;
- }
- if (zle==0) return 1;
- if (length2>INT32_MAX) {printf("jkv");return 1;}
- nahrada=length2;
- nahrada2=width2;
- length=nahrada/10;
- width=nahrada2/10;
- printf("\nVelikost: %lf x %lf",length,width);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement