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!