java经典的小程序详尽代码Word文件下载.docx

上传人:b****6 文档编号:18714199 上传时间:2022-12-31 格式:DOCX 页数:30 大小:48.57KB
下载 相关 举报
java经典的小程序详尽代码Word文件下载.docx_第1页
第1页 / 共30页
java经典的小程序详尽代码Word文件下载.docx_第2页
第2页 / 共30页
java经典的小程序详尽代码Word文件下载.docx_第3页
第3页 / 共30页
java经典的小程序详尽代码Word文件下载.docx_第4页
第4页 / 共30页
java经典的小程序详尽代码Word文件下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

java经典的小程序详尽代码Word文件下载.docx

《java经典的小程序详尽代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《java经典的小程序详尽代码Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。

java经典的小程序详尽代码Word文件下载.docx

0||mark>

100){

输入有误!

级,60分以下E

if语句。

/*判断分数的等级

90分以上者A级,80~89分者B级,70~79分者C级,60~69者D级*/

if(mark>

=90)System.out.println("

thismarkisgrade\'

A\'

elseif(mark>

=80)System.out.println("

B\'

=70)System.out.println("

C\'

=60)System.out.println("

D\'

elseSystem.out.println("

E\'

3,编写程序求1+3+5+7+……+99的和值。

classhe{publicstaticvoidmain(String[]args){intnumber=1;

//初始值1,以后再+2递增上去

intsum=0;

for(;

number<

100;

number+=2){sum+=number;

}System.out.println("

1+3+5+7+……+99="

+sum);

4、利用for循环打印9*9

表?

1*1=1

1*2=2

2*2=4

1*3=3

2*3=6

3*3=9

1*4=4

2*4=8

3*4=12

4*4=16

1*5=5

2*5=10

3*5=15

4*5=20

5*5=25

1*6=6

2*6=12

3*6=18

4*6=24

5*6=30

6*6=36

1*7=7

2*7=14

3*7=21

4*7=28

5*7=35

6*7=42

7*7=49

1*8=8

2*8=16

3*8=24

4*8=32

5*8=40

6*8=48

7*8=56

8*8=64

1*9=9

2*9=18

3*9=27

4*9=36

5*9=45

6*9=54

7*9=63

8*9=729*9=81

//循环嵌套,打印九九乘法表

publicclassNineNine{

publicstaticvoidmain(String[]args){

System.out.println();

for(intj=1;

j<

10;

j++){

for(intk=1;

k<

k++){//老师的做法,判断语句里的k<

=j,省去下列的

if(k>

j)break;

//此处用continue也可以,只是效率低一点

System.out.print("

+k+"

X"

+j+"

="

+j*k);

3位数,其各各位数字立方和等于其本身,

6、输出所有的水仙花数,把谓水仙花数是指一个数例如:

153=1*1*1+3*3*3+5*5*5

classDafodilNumber{publicstaticvoidmain(String[]args){System.out.println("

以下是所有的水仙花数"

intnumber=100;

//由于水仙花数是三位数,故由100开始算起

inti,j,k;

//ijk分别为number的百位、十位、个位

for(intsum;

number<

1000;

number++){i=number/100;

j=(number-i*100)/10;

k=number-i*100-j*10;

sum=i*i*i+j*j*j+k*k*k;

if(sum==number)System.out.println(number+"

isadafodilnumber!

7、求a+aa+aaa++aaaaaaaaa=?

其中a为1至9之中的一个数,项数也要可以指定。

classMultinomial{publicstaticvoidmain(String[]args){inta;

//定义输入的ainthowMany;

//定义最后的一项有多少个数字Scannerscanner=newScanner(System.in);

请输入一个1~9的a值"

a=scanner.nextInt();

请问要相加多少项?

howMany=scanner.nextInt();

intsum=0;

inta1=a;

//用来保存a的初始值

for(inti=1;

i<

=howMany;

i++){sum+=a;

a=10*a+a1;

//这表示a的下一项

//每次a的下一项都等于前一项*10,再加上刚输入时的a;

注意,这时的a已经变化了。

sum="

+sum);

8、求2/1+3/2+5/3+8/5+13/8前20项之和?

classSum{publicstaticvoidmain(Sting[]args){

doublesum=0;

doublefenZi=2.0,fenMu=1.0;

//初始的分子(fenZi)=2,分母(fenMu)=1

for(inti=1;

=20;

i++){sum+=fenZi/fenMu;

fenMu=fenZi;

//下一项的分母=上一项的分子

fenZi+=fenMu;

〃下一项的分子=上一项的分子加分母

sum="

sum);

9、利用程序输出如下图形:

*

***

*****

*******

classAsterisk{publicstaticvoidmain(String[]args){

=13;

i+=2){

for(intj=1;

j<

=i&

i+j<

=14;

j++){System.out.print("

*"

}System.out.println();

//换行

}}

11、计算圆周率

PI=4-4/3+4/5-4/7

打印出第一个大于3.1415小于3.1416的值classPi{

publicstaticvoidmain(String[]args){

doublepi=0;

//定义初始值

doublefenZi=4;

//分子为4

doublefenMu=1;

//第一个4,可看作分母为1的分式,以后的分母每次递增2

for(inti=0;

i<

1000000000;

i++){//运行老久,减少循环次数会快很多,只是精确度小些pi+=(fenZi/fenMu);

fenZi*=-1.0;

//每项分子的变化是+4,-4,+4,-4

每项递加2

fenMu+=2.0;

//分母的变化是1,3,5,7,..

System.out.println(pi);

输出结果为pi=3.1415926525880504,应该不精确

12、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值

112358132134规律:

一个数等于前两个数之和//计算斐波那契数列(Fibonacci)的第n个值publicclassFibonacci{

publicstaticvoidmain(Stringargs[]){

intn=Integer.parseInt(args[0]);

intn1=1;

//第一个数

intn2=1;

//第二个数

//和if(n<

=0){

参数错误!

"

return;

}if(n<

=2){

sum=1;

}else{

for(inti=3;

i<

=n;

i++){sum=n1+n2;

n1=n2;

n2=sum;

System.out.println(sum);

//计算斐波那契数列(Fibonacci)的第n个值

//并把整个数列打印出来

publicclassFibonacciPrint{

FibonacciPrintt=newFibonacciPrint();

i++){

t.print(i);

publicvoidprint(intn){

//第二个数

//和

if(n<

=2){sum=1;

}else{for(inti=3;

n1=n2;

13、求1-1/3+1/5-1/7+1/9的值。

a,求出前50项和值。

b,求出最后一项绝对值小于1e-5的和值。

15、在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下:

*********

//打印金字塔图案

publicclassPrintStar{

intcol=Integer.parseInt(args[0]);

字符数组args的第一位转成int类型给COL哦

=col;

i++){//i表示行数//打印空格for(intk=0;

col-i;

k++){System.out.print("

//打印星星

for(intm=0;

m<

2*i-1;

m++){

*"

16、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和打印出所有的可能

//任何一个大于六的偶数可以拆分成两个质数的和//打印出所有的可能publicclassGedebahe{

intnum=Integer.parseInt(args[0]);

if(num<

=6){

return;

}if(num%2!

Gedebaheg=newGedebahe();

//1不是质数,2是偶数,因此从3开始循环for(inti=3;

=num/2;

if(i%2==0){//如果为偶数,退出本次循环continue;

i是素数并且参数

个元素转换成为

//当i与num-i都为质数时,满足条件,打印

if(g.isPrime(i)&

g.isPrime(num-i)){/*判断素数的方法*/如果num-参数i也是素数的时候

你的程序如此运行javaxxxaabb

aa=args[0]bb就是args[1]这样Integer.parseInt就是把这args这个数据的第Integer类型。

System.out.println(i+"

+"

+(num-i)+"

="

+num);

第4章数组

1.定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。

classArrayNumber{publicstaticvoidmain(String[]args){int[]arrayNumber;

arrayNumber=newint[10];

以下是随机的10个整数:

//填入随机的10个整数

for(inti=0;

arrayNumber.length;

i++){arrayNumber[i]=(int)(100*Math.random());

System.out.print(arrayNumber[i]+"

intmax=arrayNumber[0];

intmin=arrayNumber[0];

i++){if(max<

arrayNumber[i])max=arrayNumber[i];

//求最大值if(min>

arrayNumber[i])min=arrayNumber[i];

//求最小值

sum+=arrayNumber[i];

其中Max="

+max+"

Min="

+min+"

Sum="

+sum+"

Avg="

+sum/10.0);

2.定义一个int型的一维数组,包含10个元素,分别赋值为1~10,然后将数组中的元素都向前移一个位置,

即,a[0]=a[1],a[1]=a[2],最后一个元素的值是原来第一个元素的值,然后输出这个数组。

3.定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100

之间的随机整数,

将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来。

4.(选做)承上题,将这40个成绩按照从高到低的顺序输出出来。

5,(选做)编写程序,将一个数组中的元素倒排过来。

例如原数组为1,2,3,4,5;

则倒排后数组

中的值

为5,4,3,2,1。

6,要求定义一个int型数组a,包含100个元素保存100个随机的4位数。

再定义一个

int型数组b,包含10个元素。

统计a数组中的元素对10求余等于0的个数,保存

依此类推。

到b[0]中;

对10求余等于1的个数,保存到b[1]中,classRemain{

publicstaticvoidmain(String[]args){

int[]a=newint[100];

//保存100个随机4位数到a中

a.length;

i++){a[i]=(int)(1000*Math.random());

}//统计a数组中的元素对10求余的各个的数目

int[]b=newint[10];

intk,sum;

for(intj=0;

j<

b」ength;

j++){

for(k=0,sum=0;

k<

k++){

if((a[k]%10)==j)sum++;

b[j]=sum;

System.out.printf("

b[%d]=%d\n"

j,b[j]);

Scannern=newScanner(System.in)

7,定义一个20*5的二维数组,用来存储某班级20位学员的5门课的成绩;

这5门课

按存储顺序依次为:

coreC++,coreJava,Servlet,JSP和EJB。

(1)循环给二维数组的每一个元素赋0~100之间的随机整数。

(2)按照列表的方式输出这些学员的每门课程的成绩。

(3)要求编写程序求每个学员的总分,将其保留在另外一个一维数组中。

(4)要求编写程序求所有学员的某门课程的平均分。

importjava.lang.Math;

importjava.util.Random;

publicclassC{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

int

i[]=

new

[20];

m[]=

[5];

for

(int

j=0;

i.

length;

j++)

{

i[j]=j+1;

for(intl=0;

l<

m.

length

;

l++)

1

m[l]=1+(int

)(Math.

random()*99);

System.out

.print(m[l]+

);

System.out.println("

同学"

+i[j]+"

成绩分别为:

classStudent{

publicstaticvoidmain(String[]args){int[][]mark=newint[20][5];

//给学生赋分数值,随机生成

for(inti=0;

)}

}//未完成

8,完成九宫格程序

在井字形的格局中(只能是奇数格局),放入数字(数字由),使每行每列以及斜角线的和都相等

经验规则:

从1开始按顺序逐个填写;

1放在第一行的中间位置;

下一个数往右上角45度处填写;

如果单边越界则按头尾相接地填;

如果有填写冲突,则填到刚才位置的底下一格;

如果有两边越界,则填到刚才位置的底下一格。

个人认为,可以先把最中间的数填到九宫格的最中间位置;

再按上面的规则逐个填写,而且填的时候还可以把头尾对应的数填到对应的格子中。

(第n个值跟倒数第n个值对应,格

局上以最中

间格为轴心对应)这样就可以同时填两个数,效率比之前更高;

其正确性有待数学论证(但多次实验之后都没发现有错)。

九宫格的1至少还可以填在另外的三个位置,只是接下来的填写顺序需要相应改变;

再根据九宫格的对称性,至少可以有8种不同的填写方式

classNinePalace{

//定义N为九宫格的行列数,需要输入

请输入九宫格的行列规模(只能是奇数的)"

Scannern=newScanner(System.in);

intN;

//判断格局是否奇数(可判断出偶数、负数及小数)doubled;

while(true){

d=n.nextDouble();

N=(int)d;

if((d-N)>

1.0E-4||N%2==0||N<

0)

{System.out.println("

输入出错,格局只能是正奇数。

请重新输入"

}elsebreak;

//老师的九宫格填写方法

int[][]result=newint[N][N];

//定义保存九宫格的数组

introw=0;

//行初始位置

intcol=N/2;

//列初始位置,因为列由0开始,故N/2是中间位置

=N*N;

i++){

result[row][col]=i;

row--;

col++;

if(row<

0&

col>

=N){col--;

row+=2;

}//行列都越界

elseif

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

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1