- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
50道JAVA基礎编程练习题全面解答
50道JAVA基础编程练习题解答
本人尚属菜鸟,因此下面的解答有可能会出现错误,也可能使用的方法不够简便,希望指正。发现错误了,请QQ联系我,希望得到指正。
QQ:474027915
【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? .程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
解答:
(方法一)
利用数学分析可得知:这个月的兔子数量为前两个月的兔子数量之和,推导过程如下:
X1,X2,X3 Y1,Y2,Y3 Z1,Z2,Z3
X1:表示一个月大的兔子;X2表示两个月大的兔子;X3表示三个月及三月以上的兔子。
有以下数学表达式:
Y1=X2+X3 ,Y2=X1 ,Y3=X2+X3
Z1=Y2+Y3 ,Z2=Y1 ,Z3=Y2+Y3
Z1+Z2+Z3= Y2+Y3+Y1+(Y2+Y3)=(Y2+Y3+Y1)+(X2+X3+X1)
因此上面每个月的兔子的数量满足斐波那契数列。编程实现较为简单,此处省略。
(方法二)
方法二利用编程实现,具有一般性(开始兔子个数和产仔周期可自行输入),程序设计如下:
import java.util.*;
import java.io.*;
class TuZi
{
int nianling=1;
}
public class Text1 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
int shuliang=1;
int zhouqi=4;
int yuefen=0;
VectorTuZi rongqi=new VectorTuZi();
System.out.print(输入兔子开始数量:);
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
shuliang=(new Integer(stdin.readLine()));
System.out.print(输入兔子生产周期:);
zhouqi=(new Integer(stdin.readLine()));
System.out.print(输入查询月份:);
yuefen=(new Integer(stdin.readLine()));
for(int i=1;i=shuliang;i++)
{
rongqi.addElement(new TuZi());
}
for(int i=2;i=yuefen;i++)
{
for(int j=0;jrongqi.size();j++)
{
TuZi a=(TuZi)rongqi.elementAt(j);
a.nianling++;
}
for(int j=0;jrongqi.size();j++)
{
if(rongqi.elementAt(j).nianling=zhouqi)
{
rongqi.addElement(new TuZi());
}
}
}
System.out.print(兔子数量为:+rongqi.size());
}
}
【程序2】
题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
解答:
程序如下:
public class Text2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
System.out.print(101到200的素数是: );
for(int i=101;i=200;i++)
{
int flag=0;
for(int j=2;j=Math.sqrt(i);j++)
{
float k=(float)i;
if(k%j==0)
{
flag=1;
break;
}
}
if(flag==0)
{
文档评论(0)