online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
// dla ułatwienia zakładam, że a i b są typu string // również zakładam, że liczby mogą być tylko naturalne function multiply(a, b) { // tworzymy tablicę na wynik const product = [] // iterujemy po kolejnych cyfrach mnożnika, od tyłu for (let i = b.length - 1; i >= 0; i--) { // zmienna przechowująca przeniesioną cyfrę let carry = 0; // aktualna cyfra mnożnika const multiplicand = parseInt(b[i]); // iterujemy po kolejnych cyfrach mnożnej, od tyłu for (let j = a.length - 1; j >= 0; j--) { // aktualna cyfra mnożnej const multiplier = parseInt(a[j]); // aktualnie wyliczona cyfra wyniku na interesującej nas pozycji // jeśli nie istnieje, bierzemy 0 const currentDigit = product[i + j + 1] || 0; // dodajemy do aktualnej cyfry przeniesioną cyfrę oraz iloczyn cyfr mnożnej i mnożnika const currentResult = currentDigit + carry + multiplicand * multiplier // zapisujemy aktualną wartość przeniesienia // dzielenie przez 10, ponieważ operujemy w systemie dziesiętnym carry = Math.trunc(currentResult / 10); // zapisujemy odpowiednią cyfrę do wyniku product[i + j + 1] = currentResult % 10; } // jak przeszliśmy przez całą mnożną, to zapisujemy przeniesioną cyfrę do wyniku if (carry > 0) { product[i] = carry; } } // zwracamy iloczyn jako string return product.join(''); } // dwa proste przypadki, jednocyfrowe bez przeniesienia console.log(multiply('2', '2')); // 4 console.log(multiply('3', '2')); // 6 // przypadek jednocyfrowy, gdzie zachodzi przeniesienie console.log(multiply('3', '4')); // 12 // przypadek, gdzie mnożna ma więcej cyfr niż mnożnik, bez przeniesienia console.log(multiply('10', '4')); // 40 // przypadek, gdzie mnożna ma więcej cyfr i zachodzi przeniesienie console.log(multiply('15', '5')); // 75 // przypadek, gdzie mnożnik ma więcej cyfr od mnożnej console.log(multiply('4', '1000')); // 4000 // sprawdzenie poprawności przeniesień przy największym przypadku (9*9) console.log(multiply('9999', '9999')); // 99980001 // różne, duże liczby console.log(multiply('15', '50000000000')); // 750000000000 console.log(multiply('1234567890', '987654321')); // 1219326311126352690 console.log(multiply('18446744073709551616', '18446744073709551616')); // 340282366920938463463374607431768211456 console.log(multiply('12345678901234567890', '987654321987654321')); // 12193263124676116323609205901126352690

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue