// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <string>
#include <string.h>
#include <math.h>
#include <vector>
#include <queue>
#include <stack>
using namespace std;
const int Max = 1010;
const long long MaxSize = 10100100;
char s1[Max], s2[Max];
char *s3[4];
char *tokens = ".";
typedef struct {
long long g;
long long s;
long long k;
}Money;
Money mo[3];
void print(int flagc) {
if (flagc == 1) {
printf("-");
printf("%lld.%lld.%lld", mo[2].g, mo[2].s, mo[2].k);
}
else {
printf("%lld.%lld.%lld", mo[2].g, mo[2].s, mo[2].k);
}
printf("\n");
return;
}
int main()
{
// freopen("Text.txt", "r", stdin);
while (scanf("%s %s",s1,s2)!=EOF) {
char *token;
int i = 0;
token = strtok(s1, tokens);
s3[0] = token;
do {
token = strtok(NULL, tokens);
s3[++i] = token;
} while (token);
mo[0].g = stoll(s3[0]);
mo[0].s = stoll(s3[1]);
mo[0].k = stoll(s3[2]);
char *token2;
i = 0;
token2 = strtok(s2, tokens);
s3[0] = token2;
while(token2){
token2 = strtok(NULL, tokens);
s3[++i] = token2;
}
mo[1].g = stoll(s3[0]);
mo[1].s = stoll(s3[1]);
mo[1].k = stoll(s3[2]);
mo[2].g = mo[1].g - mo[0].g;
mo[2].s = mo[1].s - mo[0].s;
mo[2].k = mo[1].k - mo[0].k;
int flag = 0;
if (mo[2].g > 0) {
if (mo[2].k < 0) {
mo[2].s--;
mo[2].k = 29 + mo[2].k;
}
if (mo[2].s < 0) {
mo[2].g--;
mo[2].s = mo[2].s + 17;
}
}
else if (mo[2].g == 0) {/* else if 相比 if if 结构的特点 :
这里用了else if结构,如果在上一个if中对mo[2].g造成改变则在这个else if不会受到影响
如果是if if 结构则在上一个if对下一个if的判断条件造成改变,下一个if会收到影响*/
if (mo[2].s > 0) {
if (mo[2].k < 0) {
mo[2].s--;
mo[2].k = 29 + mo[2].k;
}
}
else if (mo[2].s == 0) {
if (mo[2].k < 0) {
flag = 1;
mo[2].g = mo[0].g - mo[1].g;
mo[2].s = mo[0].s - mo[1].s;
mo[2].k = mo[0].k - mo[1].k;
if (mo[2].k < 0) {
mo[2].s--;
mo[2].k = 29 + mo[2].k;
}
if (mo[2].s < 0) {
mo[2].g--;
mo[2].s = mo[2].s + 17;
}
}
}
else {
flag = 1;
mo[2].g = mo[0].g - mo[1].g;
mo[2].s = mo[0].s - mo[1].s;
mo[2].k = mo[0].k - mo[1].k;
if (mo[2].k < 0) {
mo[2].s--;
mo[2].k = 29 + mo[2].k;
}
if (mo[2].s < 0) {
mo[2].g--;
mo[2].s = mo[2].s + 17;
}
}
}
else {
flag = 1;
mo[2].g = mo[0].g - mo[1].g;
mo[2].s = mo[0].s - mo[1].s;
mo[2].k = mo[0].k - mo[1].k;
if (mo[2].k < 0) {
mo[2].s--;
mo[2].k = 29 + mo[2].k;
}
if (mo[2].s < 0) {
mo[2].g--;
mo[2].s = mo[2].s + 17;
}
}
print(flag);
}
return 0;
}
PAT乙级 在霍格沃茨找零钱
最新推荐文章于 2023-12-27 15:43:57 发布