【每日刷题】 PAT 基础习题集 7-2 然后是几点

题目描述:
在这里插入图片描述
在这里插入图片描述
准确的说这是第二次做这道题,半个月前因为要考PAT乙级就做了一下这个题集,但当时时间很紧张就做得很粗糙,现在时间比较充裕,就坚持一直做题,希望到九月份秋考甲级的时候能有不错的成绩。
首先是今天写的代码:

//7-2
#include <stdio.h>
int main ( void )
{
	int t1, m, flag = 1;
	scanf( "%d%d", &t1, &m );
	if( m < 0 ){
		m = - m;
		flag = 0;
	}
	int hour = t1 / 100, min = t1 % 100;
	int hour1 = m / 60, min1 = m % 60;
	int hour2, min2;
	if( flag == 0 ){
		if( min < min1 ){
			hour2 = hour - hour1 - 1;
			min2 = 60 - (min1 - min);
		}
		else{
			hour2 = hour - hour1;
			min2 = min - min1;
		}
	} 
	else{
		if( min + min1 >= 60 ){
			hour2 = hour + hour1 + (min + min1) / 60;
			min2 = ( min + min1 ) % 60;
		}
		else{
			hour2 = hour + hour1;
			min2 = min + min1;
		}
	}
	int t2 = hour2 * 100 + min2;
	printf( "%d", t2 );
	return 0;
}

还是蛮简单的,直到我回头翻了一下自己半个月前写的代码:

#include <stdio.h>

int main() {
    int start, minutes, total, ret;
    scanf("%d %d", &start, &minutes);
    total = start % 100 + start / 100 * 60 + minutes;
    ret = total / 60 * 100 + (total - total / 60 * 60);
    printf("%d", ret);
    return 0;
}

???怎么比起半个月前还更复杂了,不过仔细看一下,两种做法是从不同的出发点来做的,第一种是把时分拆开计算,而第二种是直接先计算出总的分钟数,然后再进行变形,总的来说还是自己经验不足,希望以后能慢慢提高。

猜你喜欢

转载自blog.csdn.net/qq_40344308/article/details/88560727
今日推荐