Em đọc trên mạng thấy một đề bài tính x^y bằng phép cộng hoàn toàn (không được sử dụng phép toán nào khác )
Ý là toàn bộ thuật toán chỉ dùng phép cộng
Em đọc trên mạng thấy một đề bài tính x^y bằng phép cộng hoàn toàn (không được sử dụng phép toán nào khác )
Ý là toàn bộ thuật toán chỉ dùng phép cộng
Bạn thử theo cách ở đây:
int multiply(int x, int y)
{
int product = 0;
for (int i = 0; i<y; i++)
product += x;
return product;
}
int power(int x, int exponent)
{
int result = 1;
for (int i = 0; i < exponent; i++)
result = multiply(result, x);
return result;
}
int product;
Chưa có giá trị khởi tạo kìa.
int product = 0;
để em ngâm cứu cảm ơn anh
cho em hỏi biến y dùng để làm gì vậy anh??
Y chính là cơ số, ví dụ
2^3
thì y=2
em nghĩ y là số mũ chứ anh đạt, nếu y là cơ số thì
product+=y;
``` chứ
product
ở đây nó thay đổi.
Ví dụ 5^3 đi. Tức là
5*5*5 = (5+5+5+5+5)*5 = 25*5 = 25+25+25+25+25
trong lần tính đầu, product = 5+5+5+5+5
. và lần sau là 25
Giá trị y
không đổi, chính là số lần ta phải cộng.
Nhưng x
thì thay đổi, sau mỗi lần nhân, nó to ra. Thế nên product
sẽ tăng lên theo cấp số nhân
à em hiểu rồi ngồi tính giấy nãy giờ
em đọc xong cái tiêu đề thì nghĩ là chỉ dùng mỗi phép cộng thôi chứ ạ, ko đc dùng phép nhân chứ ạ.
không được dùng phép nào ngoài phép công không chỉ ở lúc tính số mũ mà cả bài toán em đều phải dùng phép cộng hết
chỉ cần có phép khác xuất hiện là không đạt
Ừ, bài này không dùng phép cộng. Đạt chỉ ví dụ là nếu dùng phép nhân thì nó thế nào thôi và cách chuyển từ nhân sang cộng
Bạn coi thử cái này xem, mình viết bằng matlab, cũng khá dễ hiểu
x = input('Nhap x');
y=input('Nhap y');
result=x;
a=x;
for n=2:y
for i=1:(x-1)
result=result+a;
end
a=result;
end
result
sao em code thì chạy ok nhưng giải tay thì không được nhỉ
Anh có thể giải thích hộ em khúc này result=result+a; a=rerult;
lúc đầu em tính được result =10, gán a=10; sau đó lặp lại result=result + a =10 +10; ???
À em hiểu rồi xem debug mới hiểu
tks anh
A có thể giai thich bang ngôn ngu tu nhien dk ko…e ms hok mak bài nay lam ko ra
a^b = aa…aa (b lần số a)
mà a*b = a+a+…+a+a (b lần số a)
a^b = (a^(b-1))*a = a^(b-1) + a^(b-1) + … + a^(b-1) + a^(b-1)
… cứ thể phân tích ra
A có fb ko ạ…có gì nhờ a giup với…ms học nam đầu
Các bạn lo lắng một ngày nào đó máy tính không thể thực hiện được phép nhân, tính mũ nữa sao
Thế thì phải tập cộng phép này thôi :
1.3^2.7