自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx

上传人:b****6 文档编号:8646143 上传时间:2023-05-12 格式:DOCX 页数:21 大小:87.62KB
下载 相关 举报
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第1页
第1页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第2页
第2页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第3页
第3页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第4页
第4页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第5页
第5页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第6页
第6页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第7页
第7页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第8页
第8页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第9页
第9页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第10页
第10页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第11页
第11页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第12页
第12页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第13页
第13页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第14页
第14页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第15页
第15页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第16页
第16页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第17页
第17页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第18页
第18页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第19页
第19页 / 共21页
自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx

《自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx(21页珍藏版)》请在冰点文库上搜索。

自考JAVA语言程序设计一课后习题答案和源代码第二章Word文档下载推荐.docx

2.6若一个数恰好等于它的因子之和,则这个数称为“完全数”。

编写程序求1000之内的所有完全数。

分析:

若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数。

例如,

6=1+2+3

28=1+2+4+7+14

496=1+2+4+8+16+31+62+124+248

8128=1+2+4+8+16+32+64+127+254+508+1016+2032+4064

程序运行结果:

源代码文件:

Work2_6.java

importjavax.swing.JOptionPane;

/**

*求1000之内的所有完全数<

BR>

*一个数如果恰好等于除它本身外的因子之和,这个数就称为"

完数"

<

*例如28=1+2+4+7+14.(28的因子是1,2,4,7,14).<

*@author黎明你好

*/

publicclassWork2_6

{

privateintmaxNumber=1000;

//保存正整数

privateStringresultString;

//最后结果字符串

publicWork2_6()

{

resultString=maxNumber+"

以内,完全数有:

\n"

;

for(inti=1;

i<

=maxNumber;

i++)

{

if(isPerfectNumber(i))

{

resultString+=i+"

,"

}

}

showResult(resultString);

}

/**

*判断是否是完全数

*@paramnumber-需要判断的正整数

*@return-是完全数返回true,否则返回false

publicbooleanisPerfectNumber(intnumber)

intsum=0;

//因子的和

Stringstr=newString("

"

);

number;

if(number%i==0)

sum+=i;

str+=i+"

+"

if(sum==number)//如果因子之和,等于本身,则是完数

str=str.substring(0,str.length()-1);

//去掉字符串最后一个多余的“+”;

System.out.println(number+"

的因子有:

+str);

returntrue;

else

returnfalse;

*弹出对话框,显示结果

*@paramstr-需要显示的字符串

publicvoidshowResult(Stringstr)

JOptionPane.showMessageDialog(null,str,"

输出结果"

JOptionPane.INFORMATION_MESSAGE);

publicstaticvoidmain(Stringargsp[])

newWork2_6();

}

2.7编写输入正实数x,求平方不超过x的最大整数n,并输出。

第一种命令行方式输入,源文件:

Work2_7_1.java

importjava.util.Scanner;

*编写输入正实数x,求平方不超过x的最大整数n,并输出。

*命令行方式,输入正实数,输出结果<

*/

publicclassWork2_7_1

publicstaticvoidmain(String[]args)

ScannerconsoleScanner=newScanner(System.in);

System.out.print("

请输入正实数X:

Stringstr=consoleScanner.next();

intnumber=-1;

try

number=Integer.parseInt(str);

catch(NumberFormatExceptione)

System.out.println("

输入非法字符,程序结束"

return;

if(number<

1)

输入的数不是正实数,程序结束"

intn=(int)(Math.sqrt(number));

平方不超过"

+number+"

的最大整数,n="

+n+"

第二种窗口方式输入,源文件:

Work2_7_2.java

运行结果如下图:

*弹出窗口方式

publicclassWork2_7_2

privateintnumber;

publicWork2_7_2()

number=this.getIntegerNumber("

请输入一个正实数"

1);

//非法,程序结束

intn=(int)(Math.sqrt(number));

showResult("

+number+"

的最大整数\nn="

+n+"

*通过图形界面,得到符合规则的正整数的方法

*@parammessage-在弹出的对话框中,显示提示信息message

*@parammin-要求此数必须大于等于min

publicintgetIntegerNumber(Stringmessage,intmin)

Stringstr=JOptionPane.showInputDialog(null,"

请输入一个正整数"

"

提示信息"

//得到输入的正整数

catch(Exceptione)

JOptionPane.showMessageDialog(null,"

输入非数字字符\n程序结束"

错误警告"

JOptionPane.ERROR_MESSAGE);

return-1;

//输入的不是数字字符,程序结束

min)

输入的数不符合规则,不是正整数\n程序结束"

"

JOptionPane.ERROR_MESSAGE);

//输入的数不是大于2的正整数时候,程序结束

returnnumber;

*@paramstr-需要显示的字符串

newWork2_7_2();

2.8输入正整数n,输出由n行n列星号字符组成的三角形图案。

Work2_8.java

importjava.util.*;

*输入正整数n,输出由n行n列星号字符组成的三角形图案。

publicclassWork2_8

publicstaticvoidmain(Stringargs[])

请输入正整数n:

intn=-1;

n=Integer.parseInt(str);

catch(NumberFormatExceptione)

if(n<

for(inti=0;

i<

n;

i++)

for(intj=0;

j<

n-i-1;

j++)

{

System.out.print("

"

}

for(intk=0;

k<

i+1;

k++)

*"

System.out.println();

2.9设有整型变量x和y的值分别为5和110。

试指出执行了以下循环语句后,变量x和y的值分别试多少?

1)while(x<

=y)x*=2;

   解:

x=160;

y=110;

2)do{x=y/x;

y=y-x;

}while(y>

=1);

x=18;

y=0;

2.10水仙花数是一个n(>

=3)位数字的数,它等于每个数字的n次幂之和。

例如153是一个水仙花数,

求小于999的所有水仙花数。

Work2_10.java

*求小于999的所有水仙花数

publicclassWork2_10

privateStringresultString=newString("

//用来存结果的字符串

privateintn=999;

publicWork2_10()

for(inti=100;

n;

if(isNarcissusNumber(i))

resultString+="

+i;

JOptionPane.showMessageDialog(null,n+"

之前的所有水仙花数是:

+resultString,

"

JOptionPane.INFORMATION_MESSAGE);

publicbooleanisNarcissusNumber(intm)//判断是否是水仙花数的方法

intnumber=m;

//把m存起来

inta[]=newint[100];

//用来存n每个位上的数

intamount=0;

//表示n的位数

while(m>

0)//通过循环得到m每个位上的数,存到数组中

a[amount]=m%10;

m=m/10;

amount++;

for(intj=0;

j<

amount;

j++)//累加每位上的数的位数次方

sum+=Math.pow(a[j],amount);

if(number==sum)//如果累加的和等于这个数本身,则他是水仙花数,返回真

newWork2_10();

2.11编程序解百鸡问题:

鸡翁一,值钱五;

鸡母一,值钱三;

鸡雏三,值钱一。

百钱买百鸡。

求鸡翁、鸡母、和鸡雏个几何?

Work2_11.java

*鸡翁一,值钱五;

*百钱买百鸡。

求鸡翁、鸡母、和鸡雏个几何。

*@author黎明你好

publicclassWork2_11

for(inti=0;

=100;

for(intj=0;

j++)

{

for(intk=0;

k<

k+=3)//鸡雏的个数必须使3的倍数

if(((5*i+3*j+k/3)==100)&

(i+j+k==100))

System.out.println("

鸡翁:

+i+"

鸡母:

+j+"

鸡雏:

+k);

2.12编写程序,按下面的公式计算自然对数底e的值:

e=1+1/1!

+1/2!

+1/3!

+1/4!

+......

Work2_12.java

*按公式计算:

publicclassWork2_12

intn=1000;

//计算精度

doublee=1.0;

=n;

e=e+1.0/Work2_12.factorial(i);

System.out.println("

e="

+e);

*计算阶乘的静态方法

*@param-需要计算阶乘的数

*@return-最后结果

staticdoublefactorial(inta)

doublef=1.0;

for(intj=1;

=a;

f=f*j;

returnf;

2.13编写程序,用如下公式计算圆周率PI的近似值:

PI=4-4/3+4/5-4/7+4/9-4/11...

Work2_13.java

*圆周率计算

publicclassWork2_13

intnum=;

//控制计算的项数,越高,越准确

用公式计算圆周率,\n计算"

+num+"

项后圆周率的近似值为"

+Work2_13.getPai(num));

3.14是第"

+Work2_13.getIndex(3.14)+"

项,\t\t值为:

+Work2_13.getPai(Work2_13.getIndex(3.14)));

3.141是第"

+Work2_13.getIndex(3.141)+"

项,\t值为:

+Work2_13.getPai(Work2_13.getIndex(3.141)));

3.1415是第"

+Work2_13.getIndex(3.1415)+"

+Work2_13.getPai(Work2_13.getIndex(3.1415)));

3.14159是第"

+Work2_13.getIndex(3.14159)+"

+Work2_13.getPai(Work2_13.getIndex(3.14159)));

*根据给出的数值,得到需要计算多少项才能得到这个数值

*

*@paramp-数值

*@return-项数

publicstaticdoublegetIndex(doublep)

intr=1,num=;

doublei=1.0,pai=0.0,t=1.0;

while(r<

num)

pai=pai+(4.0/i)*t;

t=-t;

i=i+2;

r++;

if(pai>

=p&

pai<

=(p+0.))

break;

returnr;

*根据给出的数,按公式进行计算圆周率

*@paramnum-公式项数

*@return返回按公式计算出的圆周率

publicstaticdoublegetPai(doublenum)

intr=1;

}

returnpai;

}

2.14回文整数是指正读法和反读相同的整数,编写一个程序,输入一个整数,判断他是否为回文整数。

 

Work2_14.java

*输入整数,判断是否是回文整数

publicclassWork2_14

publicWork2_14()

number=getIntegerNumber("

输入一个正整数n"

//要求是>

=1的整数

0)

if(isPalindrome(number))

showResult("

输入的正整数“"

”是回文数"

”不是回文数"

*判断是否是回文数

*@return是回文数返回真,否则返回假

publicbooleanisPalindrome(intnumber)

inti=0;

inttest=number;

while(test>

0)//把整数的各个位上的数存到数组里

a[i]=test%10;

test=test/10;

i++;

//累计整数位数

i;

if(a[j]!

=a[i-j-1])//有对应不相等的,肯定不是,直接跳出并附给b为false

returnfalse;

returntrue;

//如果一直相等,则if里边的语句不能被执行b的值是true

*@parammessa

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2