Java经典例题Word文档格式.docx
- 文档编号:18730347
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:64
- 大小:33.93KB
Java经典例题Word文档格式.docx
《Java经典例题Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java经典例题Word文档格式.docx(64页珍藏版)》请在冰豆网上搜索。
200;
i++){
booleanb=true;
//默认此数就素数
for(intj=2;
j<
=Math.sqrt(i);
j++){
if(i%j==0){
b=false;
//此数不是素数
break;
if(b){
count++;
System.out.print(i+"
System.out.println("
\n素数的个数:
"
+count);
/*【程序3】
作者若水飞天
打印出所有的"
水仙花数(narcissusnumber)"
,所谓"
水仙花数"
是指一个三位
数,
其各位数字立方和等于该数本身。
例如:
153是一个"
,因为153=1的三次方
+5的三次方+3的三次方。
利用for循环控制100-999个数,每个数分解出个位,十位,百位。
publicclassThirdNarcissusNum{
staticintb,bb,bbb;
for(intnum=101;
num<
1000;
num++){
ThirdNarcissusNumtnn=newThirdNarcissusNum();
tnn.f(num);
publicvoidf(intm){
bbb=m/100;
bb=(m%100)/10;
b=(m%100)%10;
if((bbb*bbb*bbb+bb*bb*bb+b*b*b)==m){
System.out.println(m);
/*【程序4】
将一个正整数分解质因数。
输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n>
k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你
n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
importjava.util.Scanner;
publicclassFourthPrimeFactor{
staticintn,k=2;
Scanners=newScanner(System.in);
n=s.nextInt();
System.out.print(n+"
="
);
FourthPrimeFactorfpf=newFourthPrimeFactor();
fpf.f(n);
publicvoidf(intn){
while(k<
=n){
if(k==n){
System.out.println(n);
}elseif(n>
k&
&
n%k==0){
System.out.print(k+"
*"
n=n/k;
f(n);
n%k!
=0){
k++;
/*【程序5】
利用条件运算符的嵌套来完成此题:
学习成绩>
=90分的同学用A表示,60-89分
之间的用B表示,60分以下的用C表示。
(a>
b)?
a:
b这是条件运算符的基本例子。
publicclassFifthCondition{
//publicstaticfinalintS1=90;
//publicstaticfinalintS2=60;
staticintgrade;
Scannerstr=newScanner(System.in);
ints=str.nextInt();
FifthConditionfc=newFifthCondition();
grade=pare(s);
if(grade==1){
System.out.print('
A'
}elseif(grade==2){
B'
}else{
System.out.println('
C'
publicintcompare(ints){
returns>
90?
1
:
s>
60?
2
3;
/*【程序6】
输入两个正整数m和n,求其最大公约数和最小公倍数。
利用辗除法。
/*
*在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循
环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,
返回
*较大的数,此数即为最小公约数,最小公倍数为两数之积除以最小公倍数。
**/
publicclassSixthCommonDiviser{
inta,b;
Scanners1=newScanner(System.in);
Scanners2=newScanner(System.in);
a=s1.nextInt();
b=s2.nextInt();
SixthCommonDiviserscd=newSixthCommonDiviser();
intm=scd.division(a,b);
intn=a*b/m;
最大公约数:
+m);
最小公倍数:
+n);
publicintdivision(intx,inty){
intt;
if(x<
y){
t=x;
x=y;
y=t;
while(y!
if(x==y)return1;
else{
intk=x%y;
y=k;
returnx;
/*【程序7】
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
利用while语句,条件为输入的字符不为'
\n'
.*/
importjava.util.*;
publicclassSeventhCharacterStatistics{
staticintdigital=0;
staticintcharacter=0;
staticintother=0;
staticintblank=0;
char[]ch=null;
Scannersc=newScanner(System.in);
Strings=sc.nextLine();
ch=s.toCharArray();
for(inti=0;
ch.length;
if(ch[i]>
='
0'
&
ch[i]<
9'
){
digital++;
}elseif((ch[i]>
a'
z'
)||ch[i]>
'
=
'
Z'
character++;
}elseif(ch[i]=='
blank++;
other++;
数字个数:
+digital);
英文字母个数:
+character);
空格个数:
+blank);
其他字符个数:
+other);
/*【程序8】
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如
2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
*算法:
定义一个变量b,赋初值为0;
定义一变量sum,赋初值为0,
*进入循环后,将a+b的值赋给b,将sum+b的值赋给sum;
*同时,将a增加十倍,++i;
继续循环;
*循环结束后,输出sum的值。
publicclassEightPlus{
staticlonga=2,b=0;
intn=s.nextInt();
inti=0;
longsum=0;
while(i<
n){
b=b+a;
sum=sum+b;
a=a*10;
++i;
inputnumber:
System.out.println(sum);
/*【程序9】
一个数如果恰好等于它的因子之和,这个数就称为"
完数"
。
例如6=1+2+3.
编程找出1000以内的所有完数。
publicclassNinthWanshu{
1到1000的完数有:
for(inti=1;
intt=0;
for(intj=1;
j<
=i/2;
j++){
if(i%j==0){
t=t+j;
if(t==i){
System.out.print(i+"
/*【程序10】
一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,
求它在第10次落地时,共经过多少米?
第10次反弹多高?
publicclassTenthTreeFall{
staticdoubleheight=100;
staticdoubledistance=100;
10;
distance=distance+height;
height=height/2;
路程:
+distance);
高度:
+height/2);
/*【程序11】
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
都是多
少?
可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再
去掉不满足条件的排列。
/*算法:
3个for循环加一个if语句;
*
publicclassEleventhNumberRange{
intcount=0;
for(intx=1;
x<
5;
x++){
for(inty=1;
y<
y++){
for(intz=1;
z<
z++){
if(x!
=y&
y!
=z&
x!
=z){
count++;
System.out.print(x*100+y*10+z+"
if(count%4==0){
System.out.println();
共有"
+count+"
个三位数"
/*【程序12】
企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;
利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,
可可提成7.5%;
20万到40万之间时,高于20万元的部分,
可提成5%;
40万到60万之间时高于40万元的部分,可提成3%;
60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元
的部分按1%提成,
从键盘输入当月利润I,求应发放奖金总数?
请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
/*注意:
要精确到小数点后多少位,用DecimalFormatdf=newDecimalFormat
("
#0.0000"
importjava.text.DecimalFormat;
publicclassTwelfthProfitAward{
staticdoubleprofit=0;
staticdoubleaward=0;
profit=s.nextInt();
输入的利润是"
+profit+"
万"
if(profit>
0&
profit<
=10){
award=profit*0.1;
}elseif(profit>
10&
=20){
award=10*0.1+(profit-10)*0.075;
20&
=40){
award=10*0.1+10*0.075+(profit-20)*0.05;
40&
=60){
award=10*0.1+10*0.075+20*0.05+(profit-40)*0.03;
60&
=100){
award=20*0.175+20*0.05+20*0.03+(profit-60)*0.015;
100){
award=20*0.175+40*0.08+40*0.015+(profit-100)*0.01;
DecimalFormatdf=newDecimalFormat("
#0.00000"
应该提取的奖金是"
+df.format(award)+"
/*【程序13】
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,
请问该数是多少?
在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开
方,
如果开方后的结果满足如下条件,即是结果。
请看具体分析:
publicclassThirteenthTwiceSqrt{
for(longl=1L;
l<
100000;
l++){
if(Math.sqrt((long)(l+100))%1==0){
if(Math.sqrt((long)(l+268))%1==0){
System.out.println(l+"
加100是一个完全平方数,再加168又是一个完全平
方数"
*【程序14】
输入某年某月某日,判断这一天是这一年的第几天?
以3月5日为例,应该先把前两个月的加起来,
然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天
importjava.io.*;
publicclassFourteenthYearMonthDay{
intyear,month,day;
intdays=0;
intd=0;
FourteenthYearMonthDayfymd=newFourteenthYearMonthDay();
Inputtheyear:
year=fymd.input();
Inputthemonth:
month=fymd.input();
InputTheDay:
day=fymd.input();
if(year<
0||month<
0||month>
12||day<
0||day>
31){
Inputerror,pleaserunthisprogramagain!
System.exit(0);
for(inti=1;
i<
month;
switch(i){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
days=31;
//d+=days;
case4:
case6:
case9:
case11:
days=30;
case2:
if((year%400==0)||(year%4==0&
year%100!
=0)){
days=29;
days=28;
d+=days;
System.out.println(year+"
:
+month+"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 经典 例题