为什么错了?
  • 板块灌水区
  • 楼主sqh_let_it_be
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/9/6 18:11
  • 上次更新2023/11/4 07:23:04
查看原帖
为什么错了?
363061
sqh_let_it_be楼主2021/9/6 18:11

题目传送门

输入:

8 5 33 8 11

题解:

#include <iostream>
using namespace std;
double ms[6];
double h, m, s, t1, t2;
double d1, d2, d3, dt1, dt2;//按照题意定义变量 
int swap(int a, int b) {//自己写的交换函数 
	int temp = a;
	a = b;
	b = temp;//交换过程 
}
void sort(double a[]) {//自己写的排序 
	for (int i=1; i<=5; i++) {
		for (int j=i+1; j<=5; j++) {//循环交换最大值和最小值 
			if (a[j] > a[i]) {//如果比后面的数大 
				swap(a[j], a[i]);//交换两个数 
			}
		}
	}
}
int main(){
	cin >> h >> m >> s >> t1 >> t2;//输入h时,m分,s秒,出发位置t1,目的地t2 
	d1 = (h + m / 60 + s / 3600) / 12;//如果h是12且s&&m大于0,就减1,保证h小于12 
	if(d1 > 1) {
		d1--;
	}
	d2 = (m + s / 60) / 60;//同h
	if(d2 > 1) {
		d2--;
	}
	d3 = s / 60;
	dt1 = t1 / 12;//米莎的位置 
	dt2 = t2 / 12;//目标的位置 
	ms[1] = d1;
	ms[2] = d2;
	ms[3] = d3;
	ms[4] = dt1;
	ms[5] = dt2;
	sort(ms);//sort对浮点数排序会错,所以自己写了一个sort 
	if((ms[1] == dt1 && ms[2] == dt2) || (ms[2] == dt1 && ms[1] == dt2)
	 || (ms[2] == dt1 && ms[3] == dt2) || (ms[3] == dt1 && ms[2] == dt2)
	 || (ms[4] == dt1 && ms[3] == dt2) || (ms[3] == dt1 && ms[4] == dt2)
	 || (ms[5] == dt1 && ms[4] == dt2) || (ms[4] == dt1 && ms[5] == dt2)
	 || (ms[5] == dt1 && ms[1] == dt2) || (ms[1] == dt1 && ms[5] == dt2)
	 ) {//强制if判断是否相邻 
        	cout << "YES";//如果能到t2(相邻)就输出Yes 
	}
	else {
		cout << "NO";//如果到不了t2(不相邻)就输出No 
	}
	return 0;//完美结束 
}

我的

#include<bits/stdc++.h>
using namespace std;
int m,s,t1,t2,mz[61],h,maxn,minn;
bool ok=true;
int main()
{
	cin>>h>>m>>s>>t1>>t2;
	mz[h*5]=1;
	mz[m]=1;
	mz[s]=1;
	mz[t1*5]=2;
	mz[t2*5]=2;
	maxn=max(t1,t2)*5;
	minn=min(t1,t2)*5;
	for(int i=minn;i<=maxn;i++)
	{
		  if(mz[i]==1)
		  	break;
		  if(i==maxn)
		  {
		  	cout<<"YES";
		  	return 0;
		  }
	}
	for(int i=minn;i>=1;i--)
	{
		if(mz[i]==1)
		{
			cout<<"NO";
			return 0;
		}
	}
	for(int i=maxn;i<=60;i++)
	{
		if(mz[i]==1)
		{
			cout<<"NO";
			return 0;
		}
	}
	cout<<"YES";
	return 0;
	/*for(int i=1;i<=60;i++)
		cout<<mz[i];*/
	
}

为什么题解的输出 NO,而我的输出 YES ?

不应该就是 YES 吗?

图片解释如下:

2021/9/6 18:11
加载中...