解题思路:将应付钱和实际付的钱都转为纳特来计算,最后只需要注意当实际付的钱小于应付的钱时,控制一下输出格式就行
#include<bits/stdc++.h>
using namespace std;
int main(){
int G,S,K,G1,S1,K1,sum=0;
scanf("%d.%d.%d",&G,&S,&K);
scanf("%d.%d.%d",&G1,&S1,&K1);
sum=(G1*17*29+S1*29+K1)-(G*17*29+S*29+K);
G=(sum/29)/17;
S=(sum/29)-G*17;
K=sum%29;
if(sum>=0)
printf("%d.%d.%d",G,S,K);
else
printf("%d.%d.%d",G,-S,-K);
}
运行结果: