PAT(Basic Level) Practice : 1037 在霍格沃茨找零钱 (20分)
1037 在霍格沃茨找零钱 (20分)
两个要注意的地方
输入用scanf更方便
scanf("%d.%d.%d %d.%d.%d",&P_Ga,&P_Si,&P_Kn,&A_Ga,&A_Si,&A_Kn);
判断条件
if(P_Ga>A_Ga||(P_Ga==A_Ga&&P_Si>A_Si)||(P_Ga==A_Ga&&P_Si==A_Si&&P_Kn>A_Kn))
代码
#include <iostream>
#include"stdlib.h"
#include <vector>
#include <string>
#include <cstdio>
//scanf printf防止超时
#include <algorithm>
//vector的sort
#include <sstream>
//转换
using namespace std;
#include<iomanip>
//精度
#include<cmath>
//round四舍五入取整
int main()
{
int P_Ga,P_Si,P_Kn;
int A_Ga,A_Si,A_Kn;
int resGa,resSi,resKn;
scanf("%d.%d.%d %d.%d.%d",&P_Ga,&P_Si,&P_Kn,&A_Ga,&A_Si,&A_Kn);
if(P_Ga>A_Ga||(P_Ga==A_Ga&&P_Si>A_Si)||(P_Ga==A_Ga&&P_Si==A_Si&&P_Kn>A_Kn))
{
if(P_Kn>=A_Kn)
{
resKn=P_Kn-A_Kn;
}else{
resKn=P_Kn+29-A_Kn;
P_Si--;
}
if(P_Si>=A_Si)
{
resSi=P_Si-A_Si;
}else{
resSi=P_Si+17-A_Si;
P_Ga--;
}
resGa=P_Ga-A_Ga;
printf("-%d.%d.%d\n",resGa,resSi,resKn);
}else{
if(A_Kn>=P_Kn)
{
resKn=A_Kn-P_Kn;
}else{
resKn=A_Kn+29-P_Kn;
A_Si--;
}
if(A_Si>=P_Si)
{
resSi=A_Si-P_Si;
}else{
resSi=A_Si+17-P_Si;
A_Ga--;
}
resGa=A_Ga-P_Ga;
printf("%d.%d.%d\n",resGa,resSi,resKn);
}
return 0;
}