1037 在霍格沃茨找零钱

mac2022-10-05  39

思路:直接按照减法算A-P就行

代码如下

#include <iostream> using namespace std; int swap(int &a, int &b); int main() { int G1, G2, G3, S1, S2, S3, K3, K1, K2; scanf("%d.%d.%d %d.%d.%d", &G1, &S1, &K1, &G2, &S2, &K2); int flag = false; if(G1 > G2 || (G1 == G2 && S1 > S2) || (G1 == G2 && S1 == S2 && K1 > K2) ) { int temp; flag = true; //差为负数 swap(G1, G2); swap(S1, S2); swap(K1, K2); } if(K2 >= K1) K3 = K2 - K1; else { K3 = K2 + 29 - K1; S2--; } if(S2 >= S1) S3 = S2 - S1; else { S3 = S2 + 17 - S1; G2--; } G3 = G2 - G1; if(flag) printf("-"); printf("%d.%d.%d\n", G3, S3, K3); } int swap(int &a, int &b) { int temp; temp = a; a = b; b = temp; }

反馈:之前一直以为差为负数也可以直接用A减P,还是得先交换位置再加负号才行

最新回复(0)