>시스템 튜토리얼 >리눅스 >알고리즘 - 러시아어 곱셈

알고리즘 - 러시아어 곱셈

WBOY
WBOY앞으로
2024-02-16 09:10:181308검색

알고리즘 - 러시아어 곱셈

두 개의 양의 정수를 곱하는 비주류 알고리즘

n과 m이 두 개의 양의 정수라고 가정하고 n*m을 계산한 후 이제 n의 입력을 인스턴스 크기의 척도로 사용합니다.

n이 짝수라고 가정하면 원래 크기의 절반인 인스턴스는 n/2, n*m=n/2 * 2m을 처리해야 합니다

n이 홀수라고 가정하면 공식 n*m=(n-1)/2 * 2m만 간단히 조정하면 됩니다

그리고 종료 조건으로 1*m=m을 사용하세요.

예를 적어보면 현재 n 값이 모두 홀수일 때 해당 m 값만 더하면 n*m의 곱을 얻을 수 있다는 것을 알 수 있습니다.

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

코드 구현을 시작해 보겠습니다.
#포함 <iostream><br> 네임스페이스 표준 사용;</iostream>

int 메인()
{
int n,m,mul=0;
cin>>n>>m;
for(int i=n>>1;i>=1;i=i>>1)
{
m=m

위 내용은 알고리즘 - 러시아어 곱셈의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 linuxprobe.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제