No older revisions available
No older revisions available
~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;
}