JAVA试题1
4、报数游戏。A、B、C、D、E、F、G、H共8人站成一排,按图2.8所示的方法从1开始报数。编写一个Java程序,找出谁先报到19 431 0057?

代码:
第一种
public static void find(int number) {
String[] a = {null, "A", "B", "C", "D", "E", "F", "G", "H"};
int i = number%7; //向左,或是向右移动的位置个数
int j = number/7; //判断出循环的次数
if (j%2==0) //判断循环的位数是奇数还是偶数,奇数向右移动,偶数向右移动
//number为个位数表示第0次循环,是偶数
System.out.println(a[i]);
else
System.out.println(a[8-i+1]); //因为i的范围位1~8
}
第二种
public static void find(int number) {
String[] a = {null, "A", "B", "C", "D", "E", "F", "G", "H"};
int i = 0, j = 1, k;
for (k = 0; k < number; k++) {
if (i < 8) {
i++;
if (i == 8) {
j = 8;
continue;
}
}
if (j > 1) {
j--;
if (j == 1) {
i = 1;
continue;
}
}
}
if (i == 8)
System.out.println(a[j]);
if (j == 1)
System.out.println(a[i]);
}
5、用迭代法求正数n的平方根x,a由命令行参数给出。求平方根的迭代公式为xn+1=0.5×(xn+a/xn),要求前后两次求出的x的差的绝对值小于10-5。 x的迭代初始值为a/2。
public static void sqrt(double a){
double x=a/2;
double h1,h2;
do {
h1=0.5*(x+a/x);
x=h1;
h2=0.5*(x+a/x);
x=h2;
}while (Math.abs(h1-h2)>0.00001);
System.out.println(h2);
}
6、两个羽毛球队进行比赛,各出3人。甲队为A、B、C 3人,乙队为x、y、z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和x比,C说他不和x、z比。请编写一个Java程序找出3对赛手的名单。
public static void main(String[] args) {
char i,j,k;
for (i='x';i<='z';i++)
for (j = 'x'; j <= 'z'; j++) {
if(i!=j)
for (k = 'x'; k <='z'; k++)
{
if (i!=k&&j!=k)
{
if (i!='x'&&k!='x'&&k!='z') {
System.out.println("A--" + i);
System.out.println("B--" + j);
System.out.println("C--" + k);
}
}
}
}
}
8、牛的繁殖问题。有位科学家曾出了这样一道数学题:有一头母牛,它每年年初要生一头小母牛;每头小母牛从第4个年头起,每年年初也要生一头小母牛。按此规律,若无牛死亡,第20年头上共有多少头母牛?
public static void Cow(int year){
int sum=0;
int i,j;
if (year<=4) {
for(i=0;i<year;i++)
sum++;
System.out.println(sum);
}
else {
sum=4;
int[] cow=new int[40];
cow[1]=1;
cow[2]=2;
cow[3]=3;
cow[4]=4;
for (j=5;j<=year;j++)
{
cow[j]=cow[j-1]+cow[j-3]; //数列:1,2,3,4,6,9,13,19的规律
} //6=2+4 9=3+6
System.out.println(cow[j-1]);
9、猴子吃桃问题。一天,一只小猴子摘下一堆桃子,当即吃去一半,还觉得不过瘾,又多吃了一个。第二天接着吃了前一天剩下的一半,馋不忍罢又多吃了一个。以后每天如此。到第10天小猴子去吃时,只剩下一个桃子了。问小猴子共摘了多少个桃子?
public static void main(String[] args) {
int n=1;
for (int i=0;i<9;i++)
{
n=2*(n+1); //逆向思维
}
System.out.println(n);
}
public static void find(int number) {
String[] a = {null, "A", "B", "C", "D", "E", "F", "G", "H"};
int i = 0, j = 1, k;
for (k = 0; k < number; k++) {
if (i < 8) {
i++;
if (i == 8) {
j = 8;
continue;
}
}
if (j > 1) {
j--;
if (j == 1) {
i = 1;
continue;
}
}
}
if (i == 8)
System.out.println(a[j]);
if (j == 1)
System.out.println(a[i]);
}

浙公网安备 33010602011771号