码迷,mamicode.com
首页 > 其他好文 > 详细

360机试

时间:2018-08-28 01:05:40      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:数据   while   溢出   bubuko   max   src   nbsp   algo   初始   

一、

 技术分享图片

1、

#include<iostream>
#include<algorithm> 

using namespace std;

struct node{  //结构体定义点 
    int x;
    int y;
}d[1000];

int main()
{
	int n;
	while(cin>>n)
	{
		int xmin,xmax,ymin,ymax;  //四个最大最小坐标点 
		for(int i=0;i<n;i++)
		{
			cin>>d[i].x>>d[i].y;
		}
		xmin=d[0].x;  //赋初始值 
		xmax=d[0].x;
		ymin=d[0].y;
		ymax=d[0].y;
		for(int i=1;i<n;i++)
		{
			if(xmin>d[i].x){
				xmin=d[i].x;
			}
			if(xmax<d[i].x){
				xmax=d[i].x;
			}
			if(ymin>d[i].y){
				ymin=d[i].y;
			}
			if(ymax<d[i].y){
				ymax=d[i].y;
			}
		}
		int l;
		l=max(xmax-xmin,ymax-ymin); //求出面积 
		cout<<l*l;	
	}
	return 0; 
} 

通过率36% ,由于忽略了int 的范围。

int 范围 [-2^31 , 2^31 -1] 即 [-2147483648,2147483647]

所以很容易溢出。

技术分享图片

出错

2、

#include<iostream>
#include<algorithm> 

using namespace std;

struct node{  //结构体定义点 
    long long x,y; 
}d[1000];

int main()
{
	int n;
	while(cin>>n)
	{
		long long xmin,xmax,ymin,ymax;  //四个最大最小坐标点 
		for(int i=0;i<n;i++)
		{
			cin>>d[i].x>>d[i].y;
		}
		xmin=d[0].x;  //赋初始值 
		xmax=d[0].x;
		ymin=d[0].y;
		ymax=d[0].y;
		for(int i=1;i<n;i++)
		{
			if(xmin>d[i].x){
				xmin=d[i].x;
			}
			if(xmax<d[i].x){
				xmax=d[i].x;
			}
			if(ymin>d[i].y){
				ymin=d[i].y;
			}
			if(ymax<d[i].y){
				ymax=d[i].y;
			}
		}
		long long l;
		l=max(xmax-xmin,ymax-ymin); //求出面积 
		cout<<(l*l);	
	}
	return 0; 
} // 2 800000000 900000000 -800000000 -900000000 

用 long long 数据格式才可以。

 技术分享图片

各种数据类型范围

技术分享图片

 

360机试

标签:数据   while   溢出   bubuko   max   src   nbsp   algo   初始   

原文地址:https://www.cnblogs.com/ruo-li-suo-yi/p/9545409.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!