网易雷火游戏开发笔试 4小时6道编程

1 矩形排序(100%)
定义类,再定义一个排序函数,然后直接用库函数sort
#include <iostream>
#include <iomanip>
#include <cmath>
#include <string>
#include <algorithm>
using namespace std;

struct jx {
	int w;
	int h;
	double b; //= min(w*1.0 / h, h*1.0 / w);
};
bool comp(jx j1, jx j2)
{
	int s1 = j1.w * j1.h;
	int s2 = j2.w * j2.h;
	if ( s1!=s2)return(s1<s2);
	if (j1.b!=j2.b)return (j1.b>j2.b);
	return j1.w < j2.w;
	
}

int main()
{
	int N;
	cin >> N;
	jx *data = new jx[N];
	for (int i = 0; i < N; i++)
	{
		int w, h;
		cin >> w >> h;
		data[i].w=w;
		data[i].h=h;
		data[i].b= min(w*1.0 / h, h*1.0 / w);
	}
	sort(data, data + N, comp);
	for (int i = 0; i < N; i++)
	{
		cout << data[i].w << " " << data[i].h;
		if(i!=N-1) cout<< " ";
		else cout << endl;
	}
}
2 三角 有思路但是没写完。。。
4 最简分数。
求欧拉函数,打表。内存超限了,68.75%,如果直接算会超时,大概有40%-50%
#include <iostream>
#include <iomanip>
#include <cmath>
#include <string>
#include <algorithm>
using namespace std;
//68.75
int p[100000000];

void ptable(int n)
{
	for (int i = 2; i <= n; i++)
		p[i] = 0;
	p[1] = 1;
	for (int i = 2; i <= n; i++)
		if (p[i]==0)
			for (int j = i; j <= n; j += i)
			{
				if (p[j] == 0)p[j] = j;
				p[j] = p[j] / i * (i - 1);
			}

}
//int findphi(int N)
//{
//	int n=N;
//	int k = (int)sqrt(double(n) + 0.5);
//	int m = n;
//	for (int i = 2; i <=k; i++)
//	{
//		if(n%i==0)
//		{
//			m = m / i * (i - 1);
//			while (n%i == 0)
//				n /= i;
//		}
//	}
//	if (n > 1)m = m / n * (n - 1);
//	return m;
//}
int main()
{
	int n;
	cin >> n;
	ptable(n);
	double fmin = 1;
	for (int i = 1; i <= n; i++)
	{
		//cout << p[i] * 1.0 / i << " ";
		double t = p[i]*1.0 / i;
		//cout << t << endl;
		if (fmin > t)
			fmin = t;
	}

	printf("%0.6f\n", fmin);
}

5 砌墙
找了边界条件。高度为1的时候f(n)=f(n-2)+f(n-3),17.24%
#include <iostream>
#include <iomanip>
#include <cmath>
#include <string>
#include <algorithm>
using namespace std;
//17.24
int onelevel[31];

void oneLevel()
{
	//if (onelevel[n] != 0)return onelevel[n];
	onelevel[0] = 0;
	onelevel[1] = 0;
	onelevel[2] = 1;
	onelevel[3] = 1;
	for (int i = 4; i <= 30; i++)
		onelevel[i] = onelevel[i - 2] + onelevel[i - 3];
}
long long find(int w, int h)
{
	//if (w <= 3) return 1;
	if (h == 1)return onelevel[w];
}

int main()
{
	int w, h;
	cin >> w >> h;
	oneLevel();
	cout << find(w, h) << endl;
}

#网易##笔试题目##题解#
全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务