U E D R , A S I H C RSS

Multiplying By Rotation/김회영

~cpp 
#include<iostream>
using namespace std; 

int base_return(int n); 
int exponent(int n,int radix); 
int change_number(int n,int radix); 


void main() 
{ 

	cout<<"세 수 를 입력하세요 ."<<endl; 
	int radix; 
	int first_last; 
	int second_number; 
	cin>>radix>>first_last>>second_number; 

	int important=10;
	int find_number=0; 
	int temp; 
	int base; 

	while(true) 
	{ 

		temp=change_number((important+first_last),radix)* change_number(second_number,radix); //radix형태로 입력된 수를 10진수 형태로 바꿔줍니다. 
		base = base_return(important+first_last); 

		if( temp == (first_last * exponent((base-1),radix) + change_number(important/10,radix)))//십진수 형태의 비교 실행..... 
		{ 
			find_number=(important + first_last) * second_number; 
			break; 

		} 
		
		important+=radix; 
	} 


	cout<<"이동 곱셈 속성을 갖는 숫자중 가장 작은 첫번째 숫자의 자리갯수를 출력합니다."; 
	cout<<endl; 
	cout<<base_return(find_number); 
	cout<<endl; 
} 

int base_return(int n)
{ 
	int count=1; 
	
	while( n>=10) 
	{ 
		n/=10; 
		count++; 
	} 

	return count; 
} 

int exponent(int n,int radix)
{ 

	int temp=1; 
	
	for(int i=0;i<n;i++) 
		temp*=radix; 

	return temp; 
} 

 
int change_number(int n,int radix) 
{ 
	int temp = base_return(n);
	int* k = new int[temp]; 
	int signi=0; 

	for(int j=temp ; j>0 ; j--) 
	{ 
		k[j-1]=n%10; 
		n=n/10; 
	} 

	int c=temp;
	
	for(int i=0 ; i<c; i++)//???왜그러지?? 
	{ 
		signi+=k[i] * exponent(temp-1,radix); 
		temp--; 
	} 

	return signi; 
} 

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:49
Processing time 0.0083 sec