mioj +1s

版权声明:spark https://blog.csdn.net/qq_35619728/article/details/89257583

小米oj

今天写的这个题还比较简单。。。。逐渐走出前两天自闭的心理。。。。昨天看了一篇关于快速排序的,讲的蛮详细的附上链接马桶上看算法…快速排序在我看来有点像二分法,也确实蛮巧妙的,时间复杂度最差才和

+1s


描述

在某个古老的神秘国度,有一位长者,他有一项特殊的能力,那就是能为自己的生命续一秒,与此同时,周围的人会相应的-1s

每当电子表的小时数与分钟数一样时(24小时制,00:00:00~23:59:59),那1分钟的最后1秒将会消失不见

也就是说,比如,06:06:58的下一秒将是06:07:00

现在,与长者共处了一段时间后,对于你来说,你度过的时间究竟是多少


输入

现实世界中经过的时间,格式为{天}d{小时} {分} {秒},时分秒补足2位


输出

对于你而言的时间,格式同输入


总体思路为先算出长者会比其他人多活多久,这里用秒来记录。。。。然后再用秒作为单位算年轻的人能多多少秒,再换成天数,小时,分钟数,秒数。

噢对了想起来了。。这个体还有一个地方。。。必须按照他的那个格式获取,直接当整形,遇到d跳出。。这个题有个坑。。。

#include"stdio.h"

/*
输入样例
2d06 05 24
 复制样例
输出样例
2d06 04 30
*/
/*
一天会损失24*1    秒
完整的一小时损失一秒
*/ 
typedef struct
{
	int day;
	int hour;
	int min;
	int sec;
}time;

time young, old ;
int main(void)
{
	static int a, b[100];//数组用来获取元素
	static int num = 0;//用来算长者与我差的时间
	static int i, j, k;
	//time young,old=0;
	static char p = 0;

	while (~scanf_s("%d", &a))
	{

		  b[i++] = a;
		  p = getchar();
		  if (p == 'd')
			  break;
	}
	while (~scanf_s("%d", &a))
	{
		p = getchar();
		if (p == 'p')
			break;
		b[i++] = a;
	}
	old.day=b[0],old.hour = b[1], old.min = b[2],old.sec=b[3];//取出长者的时间
	num += old.day * 24;//加上天数
	for (j = 1; j <= 24; j++)
	{
		if (old.hour < j)
		{
			if (old.min > j)
				num += j ;
			else if(old.sec==59)
				num += j ;
		   else
				num += j-1;

			break;
		}
	}
	//old比长者多活num秒
	long long int sum_y = 0;
	sum_y = old.day * 24 * 3600 + old.hour * 3600 + old.min * 60 + old.sec - num;
	young.day = sum_y / (24 * 3600);
	young.hour = (sum_y- young.day*24*3600) / 3600;
	young.min = (sum_y-young.day*24*3600 - young.hour*3600)/60;
	young.sec = (sum_y- young.day * 24 * 3600 - young.hour * 3600 -young.min*60);

	printf("%d    %d   %d   %d \n",b[0],b[1],b[2],num);
	printf("%d  %d   %d   %d\n",young.day,young.hour,young.min,young.sec);

	printf("%dd", young.day);
	if (young.hour < 10)
		printf("0");
	    printf("%d", young.hour);
		printf(" ");
		if (young.min < 10)
	    printf("0");
		printf("%d", young.min);
		printf(" ");
		printf("%d", young.sec);


	scanf_s("%d",&a);

}

然后c语言运行效率勉勉强强

在这里插入图片描述

然后果断皮一把。。不修改c++直接提交
在这里插入图片描述
嘿嘿
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019041221003192.png

顺带说一句,昨天买的两本书今天到了。。。。。。。晚上回去看看

猜你喜欢

转载自blog.csdn.net/qq_35619728/article/details/89257583