Advertisement
Guest User

kachle

a guest
Nov 18th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int gcd (int a,int b)
  5. {
  6. if (b==0)
  7. return a;
  8. else
  9. return gcd(b, a % b);
  10. }
  11.  
  12. int LCM (int a,int b) {
  13. return (abs(a * b) / gcd(a, b));
  14. }
  15.  
  16.  
  17. int main(void) {
  18. double length,width;
  19. int a=1,b=1,zle=1, l, ll, hodnota, width2, length2,d,s,il, ill,y,x,nova;
  20. double p[a],z[b], nahrada,nahrada2;
  21.  
  22. printf("Minimalni velikost:\n");
  23. if ((scanf(" %lf %lf", &length, &width)) != 2) {
  24. printf("Nespravny vstup.");
  25. return 1;
  26. }
  27.  
  28. if (10000000 < length || width <= 0) {
  29. printf("Nespravny vstup.");
  30. return 1;
  31. }
  32. length2=length*10;
  33. width2=width*10;
  34.  
  35. printf("Dlazdicky:\n");
  36. while ((hodnota=(scanf("%lf %lf", &p[a],&z[b]))) && !feof(stdin)) {
  37. il= p[a - 1]*10;
  38. ill= z[b - 1]*10;
  39. l = p[a] * 10;
  40. ll = z[b] * 10;
  41.  
  42.  
  43. if (hodnota!=2) {
  44. printf("Nespravny vstup.");
  45. zle = 0;
  46. break;
  47. }
  48.  
  49. if (((p[a] * 10) != l) || ((z[b] * 10) != ll)) {
  50. printf("Nespravny vstup.");
  51. zle = 0;
  52. break;
  53. }
  54.  
  55.  
  56. d=ll;
  57. s=ll;
  58.  
  59. if (a==1 && b==1) {
  60. while (d<length2){
  61. d=d+(l+ll);
  62. }
  63. }
  64.  
  65. if (a==1 && b==1) {
  66. while (s<width2){
  67. s=s+(l+ll);
  68. }
  69. }
  70.  
  71. if ((a==2) && (b==2)) {
  72. while (d != length2) {
  73. if (d<length2) (d = d + (l + ll));
  74. if (d > length2) (length2 = length2 + (ill+il));
  75. if (100000000 < length2) break;
  76. }
  77. }
  78. if ((a==2) && (b==2)) {
  79. while (s != width2) {
  80. if (s<width2) (s = s + (l + ll));
  81. if (s > width2) (width2 = width2 + (ill+il));
  82. if (width2 > 100000000) break;
  83. }
  84. }
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92. if ((a>2) && (b>2)) {
  93. while (d != length2) {
  94. if (d<length2) (d = d + (l + ll));
  95. if (d > length2) (length2 = length2 + (nova));
  96. if (100000000 < length2) break;
  97. }
  98. }
  99. if ((a!=1) && (b!=1)) {
  100. while (s != width2) {
  101. if (s<width2) (s = s + (l + ll));
  102. if (s > width2) (width2 = width2 + (nova));
  103. if (width2 > 100000000) break;
  104. }
  105. }
  106.  
  107.  
  108.  
  109. length2=d;
  110. width2=s;
  111.  
  112. if ( (il+ill)>(ll+l) )
  113. {x=(il+ill); y=(ll+l);}
  114. else
  115. {x=(ll+l); y=(il+ill);}
  116.  
  117. nova=LCM(x,y);
  118.  
  119. a++;
  120. b++;
  121. }
  122.  
  123. if (zle==0) return 1;
  124. if (length2>INT32_MAX) {printf("jkv");return 1;}
  125. nahrada=length2;
  126. nahrada2=width2;
  127. length=nahrada/10;
  128. width=nahrada2/10;
  129. printf("\nVelikost: %lf x %lf",length,width);
  130.  
  131.  
  132. return 0;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement