1037 호 그 와트 에서 잔돈 찾기 - c 실현

1503 단어 cPAT
만약 당신 이 해리 포 터 팬 이 라면 마법 의 세 계 는 자신 만 의 화폐 시스템 이 있다 는 것 을 알 게 될 것 입 니 다. 하 이 그 가 해리 에 게 말 한 것 처럼 "17 개의 은 시 코 (Sickle) 는 가 론 (Galleon) 을 바 꾸 고 29 개의 나 트 (Knut) 는 시 코 를 바 꾸 는 것 이 쉽 습 니 다." 지금 해리 가 지불해 야 할 가격 P 와 그 가 실제로 지불 한 돈 A,너의 임 무 는 그 가 찾 아야 할 잔돈 을 계산 하기 위해 프로그램 을 쓰 는 것 이다.
입력 형식:
1 줄 에 입력 하면 각각 P 와 A 를 주 고 형식 은 Galleon.Sickle.Knut 이 며 그 사이 에 1 개의 빈 칸 으로 구 분 됩 니 다.여기 Galleon 는 [0, 107] 구간 내 정수, Sickle 는 [0, 17) 구간 내 정수, Knut 구간 내 정수 다.
출력 형식:
한 줄 에 서 는 해리 가 찾 아야 할 잔돈 을 입력 과 같은 형식 으로 출력 한다. 만약 그 가 돈 을 충분히 가지 고 있 지 않다 면 출력 은 마이너스 일 것 이다.
입력 샘플 1:
10.16.27 14.1.28

출력 예시 1:
3.2.1

입력 샘플 2:
14.1.28 10.16.27

출력 예시 2:
-3.2.1

사고: 이런 문제 와 시 계 는 모두 비슷 하고 모두 진법 으로 구성 되 어 있 습 니 다. 통용 되 는 사 고 는 모두 가장 작은 단위 로 바 뀌 었 고 계산 한 후에 다시 바 꾸 는 것 입 니 다.
코드:
//PAT1037V1
#include 

int main(){
	long int g1,g2,sum1,sum2;	
	long int s1,s2,k1,k2;
	scanf("%ld.%ld.%ld",&g1,&s1,&k1);
	scanf("%ld.%ld.%ld",&g2,&s2,&k2);
	sum1=g1*17*29+s1*29+k1,sum2=g2*17*29+s2*29+k2;
	long int change=sum2-sum1; 
	if(change<0){
		putchar('-');
		change=-1*change;
		printf("%ld.%ld.%ld",change/(17*29),change/29%17,change%29);
	}
	else{
		printf("%ld.%ld.%ld",change/(17*29),change/29%17,change%29);
	}	
	return 0;
} 

좋은 웹페이지 즐겨찾기