Rumah > Tutorial sistem > LINUX > Algoritma - pendaraban Rusia

Algoritma - pendaraban Rusia

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-16 09:10:18
ke hadapan
1349 orang telah melayarinya

Algoritma - pendaraban Rusia

Algoritma bukan arus perdana untuk mendarab dua integer positif

Anggap n dan m ialah dua integer positif, hitung n*m, dan sekarang gunakan input n sebagai ukuran saiz contoh.

Dengan mengandaikan n ialah nombor genap, contoh dengan separuh saiz asal mesti memproses n/2, n*m=n/2 * 2m

Dengan mengandaikan n ialah nombor ganjil, anda hanya perlu membuat pelarasan mudah pada formula, n*m=(n-1)/2 * 2m

Dan gunakan 1*m=m sebagai syarat penamatan.

Jika kita menulis contoh, kita akan mendapati bahawa apabila semua nilai n semasa adalah ganjil, kita hanya perlu menambah nilai m yang sepadan untuk mendapatkan hasil darab n*m.

Contohnya: 50*65=25*130=12*260 (+130)=6*520=3*1040=1*2080===2080+1040+130=3250

Mari mulakan pelaksanaan kod:
#include <iostream><br> menggunakan ruang nama std;</iostream>

int main()
{
int n,m,mul=0;
cin>>n>>m;
untuk(int i=n>>1;i>=1;i=i>>1)
{
m=m

Atas ialah kandungan terperinci Algoritma - pendaraban Rusia. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan