迅雷9.12 笔试编程分享。
迅雷
投的是后台开发,由于c++不怎么会,提前45分钟就写完了。
甚至还能happyhappy的回顾一下代码。
反正是要挂了。攒一波人品。
ps:它有个bug,编程可以跳出。选择题目写完可以修改。
所以可以有下面的骚操作。
1. 看一眼选择题目。记住问题后提交。
2. 进入编程页面。利用可以跳转在网页搜索。
3. 进入选择,填入正确答案。
我是Java,不匹配,懒得骚了。
第一题思路与关键点:
- aa+bb=c*c,只需判断ab互质即可。
- 直接两层遍历,计算出c。复杂度为o(n^2)。
- 一开始写的 o(n^3) 不能全部ac。
第二题思路与关键点:
- 17=7+7+3
- 找到和为负数的最多正数的情况。
- 任何情况下都有一种最优方案。在2的情况下,使最后的“3”个正数最多即可。
第一题代码:
import java.util.*;
public class Main {
public static boolean f(int a,int b)
{
int s=a;
int t=b;
while(s%t!=0)
{
int temp=s%t;
s=t;
t=temp;
}
if(t==1)
{
return true;
}
else
{
return false;
}
}
public static int count(int n)
{
int result=0;
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(f(i,j))
{
int k= (int) Math.sqrt(i*i+j*j);
if(k*k==i*i+j*j&&k<=n)
{
result+=1;
}
}
}
}
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int n=scan.nextInt();
System.out.println(count(n));
}
}
第二题代码
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int a=scan.nextInt();
int b=scan.nextInt();
int i=1;
for(i=1;i<=7;i++)
{
if(b*i+a*(7-i)<0)
{
break;
}
}
int x=3;
if((7-i)<3)
{
x=(7-i)*a+(3-(7-i))*b+(b*i+a*(7-i))*2;
}
else
{
x=3*a+(b*i+a*(7-i))*2;
}
;
System.out.println(x);
}
}
#迅雷#