- Hitelesítették az S26 Ultra csalódást keltő telepét
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Huawei Mate 10 Pro - mestersége az intelligencia
- Megjött a jubileumi Pixel széria
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Samsung Galaxy Ring - gyűrű-kúra
- Xiaomi Mi 9T Pro - tizenegyes!
- Yettel topik
- Samsung Galaxy S21 FE 5G - utóirat
- Samsung Galaxy A54 - türelemjáték
Új hozzászólás Aktív témák
-
vanek
tag
válasz
WonderCSabo #3008 üzenetére
közben letelt a határidő..
de van más problémám is..
szóval a feladatom a lineáris diofantoszi egyenlet..
próbálkoztam a megírásával..de nem sokáig jutottam..a legnagyobb közös többszörös még ment..de utána már problémám volt...be kell vallani, hogy nem könnyű program..
szerencsémre, vagy nem..de véletlen rátaláltam a kész programra..igaz, nem volt nehéz, mivel csak be kellett írnom..nah de a lényeg, hogy ,tanulva a hibámból megnéztem a példában szereplő példákat és mindegyik a helyes eredményt adja vissza..
#include <stdio.h>
#include <stdlib.h>
#define HAMIS 0
#define IGAZ 1
int lnko(int x, int y) {
int maradek;
int temp;
if (y > x) {
temp = y;
y = x;
x = temp;
}
maradek = y;
while (y != 0) {
if ((x % y) == 0) {
break;
}
maradek = x % y;
x = y;
y = maradek;
}
return maradek;
}
void euklidesziAlg(int av, int bv, int* x0, int* y0) {
int i;
int szorzo[100];
int darab = 0;
int maradek;
int temp;
int avSeged;
int bvSeged;
int x0Seged;
int y0Seged;
int voltCsere = HAMIS;
avSeged = av;
bvSeged = bv;
if (bv > av) {
temp = bvSeged;
bvSeged = avSeged;
avSeged = temp;
voltCsere = IGAZ;
}
if (bvSeged != 1) {
do {
szorzo[darab] = avSeged / bvSeged;
maradek = avSeged % bvSeged;
avSeged = bvSeged;
bvSeged = maradek;
darab++;
} while (maradek != 1);
maradek = 0;
x0Seged = 1;
for (i = darab-1; i >= 0; i--) {
y0Seged = maradek + x0Seged * szorzo[i];
if (i > 0) {
maradek = x0Seged;
x0Seged = y0Seged;
}
}
} else {
x0Seged = 1;
y0Seged = 1 - avSeged;
}
if (voltCsere) {
temp = y0Seged;
y0Seged = x0Seged;
x0Seged = temp;
}
if (-av*x0Seged + bv*y0Seged == 1) {
x0Seged *= -1;
} else if (av*x0Seged - bv*y0Seged == 1) {
y0Seged *= -1;
} else if (-av*x0Seged - bv*y0Seged == 1) {
x0Seged *= -1;
y0Seged *= -1;
}
*x0 = x0Seged;
*y0 = -y0Seged;
}
int main() {
FILE *f, *fk;
int a;
int b;
int c;
int d;
int av;
int bv;
int cv;
int x0;
int y0;
int x;
int y;
int teszt;
f=fopen("be.txt", "r");
fk=fopen("ki.txt", "w");
if(f==NULL)
{
exit (-1);
}
teszt=fscanf(f, "%d %d %d", &a, &b, &c);
if(teszt!=3)
{
fprintf(fk, "0\n");
}
else
{
d = lnko(a, b);
av = a / d;
bv = b / d;
cv = c / d;
if (c % d == 0) {
euklidesziAlg(av, bv, &x0, &y0);
x = x0 * cv;
y = y0 * cv;
while (x < 0 || y < 0) {
x += bv;
y += av;
}
while (x-bv >= 0 && y-av >= 0) {
x -= bv;
y -= av;
}
fprintf(fk,"%d %d\n\n", x, y);
}
else {
fprintf(fk, "0\n");
}
fclose(f);
fclose(fk);
return 0;
getchar();
}
}de ha feltöltöm a bíróra..nincs helyes eredmény..
lehet, hogy a nagy zűrzavarban félrenéztem valamit..
tudom, hogy így csak nekem lesz nehezebb a vizsga..de hátha tanulok belőle..
köszi előre is!
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Autós topik
- OLED TV topic
- PlayStation 5
- Kalacskepu: Elrontott Radeon X1950 Pro megjavítása
- Hitelesítették az S26 Ultra csalódást keltő telepét
- E-roller topik
- OTP Bank topic
- Projektor topic
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- Samsung Galaxy A34 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- 123 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 - 4 év garancia (ELKELT)
- XBOX Series X + dokkoló // SZÁMLA // GARANCIA //
- HP EliteBook 840 G7 i5-10210U 16GB 512GB 1 év garancia
- Samsung Galaxy A26 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest