写给初次接触JAVA及JAVA应用题的那些
2013-09-18 10:23
417 查看
第一次接触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();
}
}
题目:古典问题:有一对兔子,从出生后第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();
}
}
相关文章推荐
- 初次接触Java,头疼
- .Net高手初次接触JAVA的场景
- 写给那些大学不怎么用功的我们:学习java的一些心得、对java发展的看法和一些代码
- java_Swing之弹窗设计初次接触。
- 初次接触Java 忘大家多多指教
- 什么是JavaSE,写给第一次接触Java的人
- <Java日记>初次接触Java
- JAVA第三课——L-system分形的初次接触
- javaweb 与jsp页面的交互流程 (初次接触时写)
- 初次接触java
- Java图形界面:初次接触
- 第一章 初次接触Java
- JAVA memcached初次接触
- java axis2初次接触
- 【java】String类的使用以及日期类的初次接触
- 初次接触Java
- 初次接触java
- java中set和get方法的理解,写给初学者
- 总结一下java的那些基础运算符
- 初次接触mule