임의의 진 변환
이렇게 좋 은 템 플 릿 을 만 났 으 니 서둘러 써 라. 어렵 지 는 않 지만.
앞으로 블 로그 에 아이디어 좀 써 주세요.
진 변환.
1. 우 리 는 변환 할 숫자 와 이 숫자의 진, 그리고 변환 할 진 을 입력 합 니 다.
2. 임 의 진법 이기 때문에 우 리 는 같은 것 을 10 진법 으로 바 꾼 다음 에 10 진법 에서 우리 가 원 하 는 진법 으로 전환한다.
2.1 은 바로 10 진법 으로 바 뀌 었 을 때 이다. 우 리 는 먼저 입력 한 숫자 (문자 유형 이기 때문에 직접 조작 할 수 있 는 숫자 로 바 뀌 었 다. 여 기 는 아 스 코 코드 와 int 가 상응 하 게 바 뀌 었 다. 이것 은 c 언어 기초 지식) 를 처리 한 다음 에 우 리 는 이 를 10 진법 sum 으로 바 꾸 어 처음부터 하나씩 하 는 것 을 잊 지 말 아야 한다. * 진법 을 잊 지 말 아야 한다.
2.2 바로 이 10 진법 의 수 를 우리 가 원 하 는 진수 로 바 꾸 는 것 이다. 즉, 진 을 제외 한 나머지 는 0 으로 나 눌 때 까지 배열 로 저장 하 는 것 이다.배열 에 저 장 된 순 서 는 반대 입 니 다. 배열 을 거꾸로 해 야 합 니 다.이렇게 해서 우리 가 원 하 는 결과 가 나 왔 다.
(진법 16 등 이런 큰 진법 때문에 ABC 등 자모 가 나타 날 수 있 음 을 주의 하 십시오. 우 리 는 입 출력 변환 을 할 때 모두 고려 하고 처리 해 야 합 니 다)
아래 에 코드 붙 이기:
#include<iostream>
using namespace std;
//
void convirsion( char *a ,char* b,int x,int y )
{
__int64 sum=0 ;
for(int i=0;i<a[i]!='\0';i++)
{
if(a[i]>='0'&&a[i]<='9')
sum = sum*x+(a[i]-'0');
else
sum=sum*x+(a[i]-'A'+10);
}
int k=0;
while(sum)
{
int t = sum%y;
if(t>9)
b[k++]=t-10+'A';
else
b[k++]=t+'0';
sum/=y;
}
for(int i=0;i<k/2;i++)
{
int t = b[i];
b[i]=b[k-1-i];
b[k-1-i] = t;
}
for(int i=0;i<k;i++)
{
cout<<b[i];
}
cout<<endl;
}
int main()
{
char a[50],b[50];
int x,y;
while(1)
{
cin>>a>>x>>y;
convirsion(a,b,x,y);
}
}
됐어.
버 텨 주 셔 서 감사합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.