Wątek przeniesiony 2018-08-21 17:37 z C/C++ przez kq.

implementacja mnożenia za pomocą dodawania

0

Muszę zrobić zadanie a nie mam żadnego pomysłu jak je zrobić

Zaimplementuj funkcje square (). nie używając operatora mnożenia. To znaczy operację x*x wykonaj za pomocą wielokrotnego dodawania (zacznij od zmiennej o wartości 0 i dodaj do nie x x razy).
Następnie uruchom wcześniejszą wersję programu z tą swoją funkcją.

0

W czym jest problem? Przecież treść zadania dokładnie mówi co trzeba zrobić.

0

robimy podstawy matematyki

jezeli mamy 5*5 to mozna to wydluzyc do 5+5+5+5+5 czyli Podstawa dodana do siebie tyle razy ile wykazuje druga liczba (mnożnik)

no to teraz przyklad dla 6*3 bedzie 6+6+6

Widzisz zaleznosc?

teraz potegowanie. Jezeli mamy 6 do potegi drugiej to masz 6*6 stosując to co jest wyżej powinno być jasne jak to rozwinąć

Więc zastosuj pętle z dodawaniem i masz mnożenie bez używania *

0

Mógłbys zrobić to ? rozumiem wszystko ale nie umiem tych funkcji pisac kompletnie

2

jak mi zapłacisz 100 euro to Ci napisze taką funkcję a jak nie to polecam
http://fasadin.4programmers.net/2016/03/4-pierwsze-programy.html?view=sidebar
4.4.2

0

dzięki

3

Hej
przetestuj taką funkcje rekurencyjną, pseudokot:

def f(n, m):
	if m==0:
		return 0
	else:
		return n + f(n, m-1)

Wtedy mnożenie będzie miało postać:

def square(n):
    return f(abs(n), abs(n))

Pzdr... :)

1

W C++ można jeszcze prościej:

int pow(int n, int m) {
	return m == 0 ? 0 : n + pow(n, m - 1);
}
0

Jeśli chodzi o implementację potęgowania w postaci dodawania, to możliwe są trzy wyniki, a nie dwa:

  • n^0 = 1
  • n^1 = n
  • n^m = x (x trzeba policzyć).

Dlatego też przykłady z obu wcześniejszych postów są prawie dobre. ;)

0

chyba jakoś tak, ale przetestuj:

def fpow(n, m):
	if m==0:
		return 1
	elif m==1:
		return n
	else:
		return f(fpow(n, m-1), n)
0

Zadanie potęgowania x = pow(n, m) to nie to samo co kwadrat liczby x = n * n.
W tym drugim przypadku o wiele prostsza jest np. obsługa zer czy wartości ujemnych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1