题目链接:请点击
思路:类似于模拟减法,只不过进位不一样
AC代码:
#include<iostream>
using namespace std;
void mon(int sg,int ss,int sk,int rg,int rs,int rk)
{
int s,g,k;
if(rk>=sk){
k=rk-sk;
}
else{
k=rk+29-sk;
rs=rs-1;
}
if(rs>=ss)
{
s=rs-ss;
}
else{
s=rs+17-ss;
rg=rg-1;
}
g=rg-sg;
cout<<g<<"."<<s<<"."<<k<<endl;
}
int main()
{//sg表示应付的Galleon(should_Galleon)ss表示应付的Sickle,sk表示应付的Knut
int sg,ss,sk,rg,rs,rk;
scanf("%d.%d.%d %d.%d.%d",&sg,&ss,&sk,&rg,&rs,&rk);
if(sg>rg||sg==rg&&ss>rs||sg==rg&&ss==rs&&sk>rk) {
cout<<"-";
mon(rg,rs,rk,sg,ss,sk);
}
else mon(sg,ss,sk,rg,rs,rk);
return 0;
}