Erstellen einer square () -Funktion ohne x * x in C ++

Ich lerne C ++ und das Buch "Programmierprinzipien und -praktiken mit C ++" von Bjarne Stroustrup. Einer der "Try This" fragt dies:

Implement square () ohne Verwendung des Multiplikationsoperators; Das heißt, mache das x * x durch wiederholte Addition (starte ein variables Ergebnis bei 0 und addiere x dazu x-mal). Führen Sie dann eine Version von "the first program" mit diesem square () aus.

rundsätzlich muss ich eine Quadratfunktion (int x) erstellen, die das Quadrat ohne Verwendung des Multiplikationsoperators zurückgibt. Ich habe bisher folgendes:

int square(int x)
{
    int i = 0;
    for(int counter = 0; counter < x; ++counter)
    {
        i = i + x;
    }

return i;
}

Aber ich habe mich gefragt, ob es einen besseren Weg dafür gibt. Die obige Funktion funktioniert, aber ich bin mir sehr sicher, dass dies nicht der beste Weg ist. Irgendeine Hilfe

Antworten auf die Frage(12)

Ihre Antwort auf die Frage