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