绷不住了,第一个测试点总是WA
查看原帖
绷不住了,第一个测试点总是WA
126170
wzx5486楼主2021/8/17 15:08

试了半天不知道哪里错了,有没有大佬帮忙测试一下输入什么会出问题


#include<cstdio>
#include<iostream>
using namespace std;
int tomin(double time);
void shijian(int time);
int main()
{
	int s,vpm;
	cin >> s >> vpm;
	if(s == 0)
		printf("07:50");
	else if(vpm == 0)
		;
	else
	{
		double vps = vpm / 60.0;
		double times = s / vps;
		if(times - (int)times != 0)
			times += 1;
		int timem = tomin(times);
	//	cout << vps << endl << times << endl << timem << endl;
		shijian(timem);
	}	
}
int tomin(double time)
{
	int min =  time / 60;
	if((int)time % 60 != 0)
		min++;
	if((time - (int)time != 0) && (int)time % 60 == 0)
		min++;
	return min+10;	
}
void shijian(int time)
{ 
	if(time % 60 == 0)
	{
		int hour = time / 60;
		int anshour = 8 - hour;
		if(anshour < 0)
		{
			anshour += 24;
			printf("%02d:00",anshour);
		}
		else
		{
			printf("%02d:00",anshour);
		}
	}
	else
	{
		if(time <= 480)
		{
			int hour = time / 60;
			int min = time % 60;
			int anshour = 8 - hour;
			int ansmin = 60 - min;
			if(min != 0)
				anshour--;
			if(ansmin == 60)
			{
				anshour++;
				ansmin = 0;
			}
			printf("%02d:%02d",anshour,ansmin);
		}
		else
		{
			time -= 480;
			int hour = time / 60;
			int min = time % 60;
			int anshour = 24 - hour;
			int ansmin = 60 - min;
			if(min != 0)
				anshour--;
			if(ansmin == 60)
			{
				anshour++;
				ansmin = 0;
			} 
			printf("%02d:%02d",anshour,ansmin);			
		}
	}	
}
2021/8/17 15:08
加载中...