|
|
|
|
Strumenti |
07-05-2020, 16:32 | #1 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3613
|
[C] potrebbe essere una ricorsione ma non ne sono sicuro
Ho due colonne con dei numeri e devo renderle uguali sottraendo una certa quantità agendo nel modo seguente:
se (r1,c1) > (r1,c2) fai qualcosa se (r1,c1)+(r2,c1) > (r2,c2) fai qualcosa se (r1,c1)+(r2,c1)+(r3,c1) > (r3,c2) fai qualcosa se (r1,c1)+(r2,c1)+(r3,c1)+(r4,c1) > (r4,c2) fai qualcosa Codice:
c1 c2 --------------------- r1 0 0 r2 0 0 r3 0 0 r4 0 0 r5 256 256 r6 256 256 r7 128 384 r8 512 512 r9 256 640 r10 256 768 r11 512 768 r12 128 768 r13 256 1024 r14 256 1024 r15 128 1152 r16 512 1280 r17 256 1408 r18 256 1536 r19 512 1536 r20 128 1536 Codice:
c1 c2 --------------------- r1 0 0 r2 0 0 r3 0 0 r4 0 0 r5 256 256 r6 0 256 difatti 256 + 0 = 256 r7 128 384 difatti 256 + 0 + 128 = 384 r8 128 512 difatti 256 + 128 + 128 = 512 r9 128 640 difatti 256 + 128 + 128 + 128 = 640 r10 128 768 difatti 256 + 128 + 128 + 128 + 128 = 768 r11 0 768 ....... etc..... r12 0 768 r13 256 1024 r14 0 1024 r15 128 1152 r16 128 1280 r17 128 1408 r18 128 1536 r19 0 1536 r20 0 1536 Ultima modifica di misterx : 07-05-2020 alle 16:39. |
08-05-2020, 08:11 | #2 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3613
|
scusate ho risolto col visual basic di excel, ora devo trasformare il codice in C
Codice:
Sub ricalcola() Call risomma For i = 2 To 44 If Cells(i, "N") > Cells(i, "M") Then Cells(i, "L") = Cells(i, "L") - 1 Call risomma i = 2 End If If Cells(i, "N") > Cells(i, "M") Then Cells(i, "L") = Cells(i, "L") + 1 Call risomma i = 2 End If Next i End Sub Function risomma() For i = 2 To 44 Cells(i, "N") = Cells(i, "L") + Cells(i - 1, "N") Next i End Function Codice:
L M N 0 0 0 512 512 512 256 768 768 512 1280 1280 256 1536 1536 384 1920 1920 128 2048 2048 128 2176 2176 128 2304 2304 256 2560 2560 128 2688 2688 256 2944 2944 0 2944 2944 256 256 3200 128 384 3328 256 640 3584 128 768 3712 256 1024 3968 128 1152 4096 256 1408 4352 128 1536 4480 256 1792 4736 128 1920 4864 256 2176 5120 128 2304 5248 256 2560 5504 128 2688 5632 256 2944 5888 Ultima modifica di misterx : 11-05-2020 alle 07:48. |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:12.