360机试
Posted ruo-li-suo-yi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了360机试相关的知识,希望对你有一定的参考价值。
一、
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机试的主要内容,如果未能解决你的问题,请参考以下文章
华为OD机试真题Java实现单词反转真题+解题思路+代码(2022&2023)
华为OD机试真题Python实现翻转单词顺序真题+解题思路+代码(2022&2023)
华为OD机试真题Java实现匿名信真题+解题思路+代码(2022&2023)