写给初次接触JAVA及JAVA应用题的那些

  第一次接触JAVA应用题的时候,觉得无从下手,在高手的帮助下,做了第一道应用题,觉得其实也没什么,主要是将应用题转化为JAVA的思维来解答,现就如下例子来说一下:

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一
对兔子,假如兔子都不死,问每个月的兔子总数为多少?
首先需要动手动脑子总结规律:

第1个月:1对

第2个月:1对

第3个月:2对

第4个月:3对

第5个月:5对

第6个月:8对

第7个月:13对

。。。。。

总结以上规律得出:当月的兔子对数等于前两个月兔子对数的和,这样再去编写程序,把月数当做数组的下标,数组元素为对应月的兔子对数,再乘以2就是兔子数,问题就很容易解决,变成了输入数组下标求数组对应的数值。

代码如下:

import java.util.Scanner;


public class numRabbit {


int month, numRab, elem;
int[] array;


/**
* @param args
*/
public int Input() {
System.out.println("请输入第几个月:");
Scanner sc = new Scanner(System.in);
String input = sc.next();
month = Integer.parseInt(input);
array = new int[month];
if (month >= 3) {
array[0] = 1;
array[1] = 1;
for (int i = 2; i < month; i++) {
array[i] = array[i - 1] + array[i - 2];
}
elem = array[array.length - 1];
numRab = 2 * elem;
} else {
numRab = 2;
}
return numRab;
// return array;
}


public void Output() {
System.out.println("第" + month + "个月兔子的数量为:" + numRab);
}


public static void main(String[] args) {
// TODO Auto-generated method stub
numRabbit numR = new numRabbit();
numR.Input();
// numR.elemArray();
numR.Output();
}


}

这样是不是简单很多,希望对那些初学JAVA和JAVA应用题的有所帮助!


例2

题目:判断101-200之间有多少个素数,并输出所有素数。

首先,需要知道什么是素数,素数就是除了1和它本身没有其他的公约数

其次,考虑程序,首先得考虑如何判断一个数是不是素数的问题,可以用一个for循环,让现有的数除以比它小的所有数(当然,这样有冗余,可以除以比它小的数的前一半),只要有一个数能除尽就说明不是素数。

最后,就可以编写程序

public class numPrime {


/**
* @param args
*/
boolean isPri;
int num;


public int numPri() {
for (int i = 101; i <= 200; i++) {
isPri = true;
isPrime(i);
if (isPri == true) {
System.out.println(i);
num++;
}
}
return num;
}


public boolean isPrime(int number) {
for (int i = 2; i <= (number / 2) + 1; i++) {
if ((number % i) == 0) {
isPri = false;
break;
}
}
return isPri;
}


public void Output() {
System.out.println("101-200之间共有" + num + "个素数");
}


public static void main(String[] args) {
// TODO Auto-generated method stub
numPrime nP = new numPrime();
nP.numPri();
nP.Output();
}


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值