1、题目名称:勾股数
勾股数是一组三个正整数,它们可以作为直角三角形的三条边。 比如3 4 5就是一组勾股数。 如果给出一组勾股数其中的 两个,你能找出余下的一个吗?
解析:直接暴力!
import java.util.*;
public class Main
{
public static void main(String[]args)
{
Scanner scan=new Scanner(System.in);
long a=scan.nextInt();
long b=scan.nextInt();
long c1=(long)Math.sqrt(a*a+b*b);
if(c1*c1==a*a+b*b)
{
System.out.print(c1);
return;
}
if(a>b)
{
long c2=(long)Math.sqrt(a*a-b*b);
if(c2*c2==a*a-b*b)
{
System.out.print(c2);
return;
}
}
if(a<b)
{
long c2=(long)Math.sqrt(b*b-a*a);
if(c2*c2==b*b-a*a)
{
System.out.print(c2);
return;
}
}
System.out.print(-1);
}
}
2、题目名称:最近的回文数
回文数是一个非负整数,它的各位数字从高位到低位和从低位到高位的排列是相同的。 以下是一些回文数的例子: 0 1 33 525 7997 37273 现在给到一个数,求离它最近的一个回文数(离与它的差的绝对值最小)。如果这个数本身就是回 文数,那么就输出它本身。
解析:
当时感觉有点蒙,想着能过一点测试样例就过一点,没想到都过了,测试样例太少了,这里用的是一个简单的双指针字符匹配,匹配最近的肯定是进制小的去匹配大的,看是做减法更近还是加法,如果加减都一样则选择不进位和借位的一种(这应该是有问题的,如果进位或借位使得前一位与高进制更近,则肯定过不了!)
import java.util.*;
public class Main
{
public static void main(String[]args)
{
Scanner scan=new Scanner(System.in);
String n=scan.nextLine();
char[]ch=n.toCharArray();
int len=n.length()-1;
int l=0,r=len;
while(l<r)
{
if(ch[l]!=ch[r])
{
if(ch[l]>ch[r])
{
if(ch[l]-ch[r]<=ch[r]-ch[l]+10)ch[r]=ch[l];
else
{
ch[r-1]--;
ch[r]=ch[l];
l++;
r--;
}
}
else
{
if(ch[r]-ch[l]<=ch[l]-ch[r]+10)ch[r]=ch[l];
else
{
ch[r-1]++;
ch[r]=ch[l];
l++;
r--;
}
}
}
else
{
l++;
r--;
}
}
System.out.print(new String(ch));
}
}
3,判断题:
量子计算之所以有如此高的计算效率,根本原因是它突破了二进制。
A、对 B、错
解析:
这个真不知道,所以错了,答案选b
4,单选题:
(1)第一个用模块化原理实现可编程计算机的是谁?
A、约瑟夫•雅卡尔 B、万尼瓦尔•布什 C、克劳德•香农 D、康拉德·楚泽
解析:
答案选D,不是图灵,记得很清楚
(2)Z系列计算机和几百年前的差分机使用的部件数量基本相当,尤其是Z1也是纯机械实现的,前者却可以在较少的人力和预算下得 以成功完成,以下哪一项不属于Z系列计算机的关键成功因素?
A、得到了政府的资助,并且有得力的助手 B、使用了简单的逻辑 C、使用了大量的简单模块复制 D、采取了化繁为简的思想
解析:
一眼A,政府资助只能是外在成功因素
5,填空题:
从数学上奠定了可计算问题的理论基础的,或者说计算机的数学模型是____。
我的理解:理论是图灵,实践是冯诺依曼
#############################################################################此次竞赛居然在榜上!?很是不解,测试案例有点少,错误代码都能通过全部,题的话还是喜欢之前的代码题,填空判断虽然简单但感觉没有精髓