Hirdetés
- Csak egy ország kap Exynos 2600-as Galaxy S26 telefonokat?
- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- iPhone topik
- Fele annyit ér az iPhone Air, mint amennyibe pár hete került
- Samsung Galaxy Watch6 Classic - tekerd!
- Xiaomi 15T Pro - a téma nincs lezárva
- Nothing Phone 2a - semmi nem drága
- Megtartotta Európában a 7500 mAh-t az Oppo
- Honor Magic6 Pro - kör közepén számok
- Megbüntették, ezért feloszlatná az EU-t Elon Musk
Új hozzászólás Aktív témák
-
ceginner
csendes tag
Sziasztok Sorstársak!
Elakadtam a 2. kötprogival és egy kis segítség kellene. Konkrétan a LÁDAPAKOLÁS lenne a téma. Konkrétabban: Egy gyárban egy nap csak azonos súlyú termékeket gyártanak és ezeket ládába pakolják, egy ládában max. 100 kg lehet. Egy nap max. 1000 db-ot készítenek egy-egy S súlyú termékből... Azt hogy melyik ládába pakoljunk a legkisebb négyzetek módszerével kellene megkeresni, de sehogy sem sön ki az adott kimenet.
Mit ronthattam el?
Bemenetben az első szám a napok száma, a második két szám pedig db és súly.
Már nem ez az első verzió, de már tisztára belezavarodtam. Nem tudom hogyan kellene megírni jól az algoritmust, hogy 100 db fölötti adatokra is jól működjön.Pl.: Bemenet:
1
347 6Kimenet:
0000010000010000010000010
0000100000100000000000100
0001000001000001000002000
0020000030000040000060000Az első sor első eleme, az egy kilós ládák száma - és így tovább egyészen százig...
Az általam írt kód:
#include <stdio.h>
#define M 1000
#define N 100
int Sulyok[M+1]={0};
int Darabok[N+1]={0};
int darab(int suly)
{
int j,s;
int r=1;
s = suly;
for(j=0;j<N;j++)
if (Sulyok[j] == s) r+= 1; //else r=N-1;
return r;
}
void pakol(int db,int s)
{
int K=0,a=0;
int i=0,j=0,k=1,l=0;
int opt=0;
int szumma=1000;
int NAGYSZAM = 10000;
int ossz;
int suly;
ossz = db*s;
suly = s;
Sulyok[0] = s; //az első elemet betesszük
while(i <db){
if ((s == 1) && (suly%100 != 0)) {Darabok[99] = db/10; Darabok[0] = 0;/*Darabok[100-Sulyok[k-1]]-=1;*/}
if (Sulyok[k-1] <= 100)
{
if (suly != 1) Sulyok[k] += suly;
// k+=1;
szumma = darab(Sulyok[k-1]+s)*darab(Sulyok[k-1]+s); //gyakorisag az uj suly berakasa utan
if (szumma <= NAGYSZAM)
{opt += 1;
NAGYSZAM = szumma;
k=i;
if(opt >= 1)
for(l=0;l<=k;l++)
{
if(Sulyok[l] > K) {K=Sulyok[l]; k=l;}
}
} else k+=1; //ha ezek a feltetelek nem teljesulnek uj lada kell
/ if (Sulyok[k] == (100-Sulyok[k])) {Darabok[100] += 1;}
Darabok[Sulyok[k]-1] += 1;
}
i += 1;
}
}
void kiir2(){
int i=0,j,k,l,m;
FILE* ki;
ki=fopen("ki.txt","w");
while(i<4){
for (j=0;j<N/4;j++){
if (i>0) k = (i*25)+j;
fprintf(ki,"%d ", Darabok[((i*25)+j)]); }
i+=1; fputc('\n',ki);}
fclose(ki);
}
int main()
{
int i;
int nap,suly,db;
FILE* in;
in=fopen("be.txt","r");
fscanf(in,"%d",&nap);
if (nap >=1 && nap<=10)
for (i=0;i<nap;i++){ fscanf(in,"%d %d",&db,&suly);
if (db >= 1 && db <= 1000)
if (suly >=1 && suly <=100) {
//feldolgozhatjuk az adatokat
pakol(db,suly);
}
}
kiir2();
fclose(in);
return 0;
}Minden segítséget és hozzászólást előre is köszönök!
Ú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!
- ASUS routerek
- gban: Ingyen kellene, de tegnapra
- Bestbuy játékok
- Házimozi belépő szinten
- Pánik a memóriapiacon
- Budapest és környéke adok-veszek-beszélgetek
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Luck Dragon: Asszociációs játék. :)
- Csak egy ország kap Exynos 2600-as Galaxy S26 telefonokat?
- Torrent meghívó kunyeráló
- További aktív témák...
- Apple iPhone 12 Pro 512GB,Átlagos,Dobozával,12 hónap garanciával
- T14s Gen4 14" FHD+ IPS érintő Ryzen 5 PRO 7540U 16GB 256GB NVMe magyar vbill ujjolv IR kam gar
- Dell 3410 i5-10310u 8Gb ram 256Gb NVMe, számla, garancia, Magyar bill
- iPad 9 Wifi + Cellular + AJÁNDÉK iPad Pro Leather tok
- Apple iPhone 13 Pro Max 256GB,Átlagos,Dobozával,12 hónap garanciával
- Azonnali készpénzes Sony Playstation 4 Slim / PS4 Pro felvásárlás személyesen/csomagküldéssel
- HIBÁTLAN iPhone 13 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3432
- ÁRCSÖKKENTÉS Thinkpad P52s workstation: Core i7 8650U, 32GB RAM, P500 VGA új kijelző / akkumulátorok
- Samsung Galaxy A23 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi 14C / 4/128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Mit ronthattam el?


