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的平方根xa由命令行参数给出。求平方根的迭代公式为xn+1=0.5×(xn+a/xn),要求前后两次求出的x的差的绝对值小于10-5 x的迭代初始值为a2


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人。甲队为ABC 3人,乙队为xyz 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和x比,C说他不和xz比。请编写一个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]);

}
posted @ 2022-04-03 19:00  苏欣然  阅读(90)  评论(0)    收藏  举报