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

알고리즘 - 러시아어 곱셈

WBOY
풀어 주다: 2024-02-16 09:10:18
앞으로
1271명이 탐색했습니다.

알고리즘 - 러시아어 곱셈

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

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿