常用算法答案.docx

上传人:b****6 文档编号:2923754 上传时间:2022-11-16 格式:DOCX 页数:25 大小:23.70KB
下载 相关 举报
常用算法答案.docx_第1页
第1页 / 共25页
常用算法答案.docx_第2页
第2页 / 共25页
常用算法答案.docx_第3页
第3页 / 共25页
常用算法答案.docx_第4页
第4页 / 共25页
常用算法答案.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

常用算法答案.docx

《常用算法答案.docx》由会员分享,可在线阅读,更多相关《常用算法答案.docx(25页珍藏版)》请在冰豆网上搜索。

常用算法答案.docx

常用算法答案

阶乘之和

/*

*输入n,计算S=1!

+2+3!

+…十n!

的末6位(不含前导0)。

n≤106。

*这里,n!

表示前n个正整数之积。

*/

packagecom.MyDem.MyDem5;

publicclassMyDem01{

publicstaticvoidmain(String[]args)

{

//

inte=sum(11);

Stringa=e+"";

System.out.println(a);

if(a.charAt((a.length()-6))=='0')

{

System.out.println(a.substring(a.length()-5,a.length()));

}else

{

System.out.println(a.substring(a.length()-6,a.length()));

}

}

publicstaticintsum(intn)

{

inta=0;

for(inti=1;i<=n;i++)

{

inte=1;

for(intj=1;j<=i;j++)

{

e*=j;

}

a+=e;

}

returna;

}

}

数据统计

/**

*

* 输入一些整数,求出它们的最小值、最大值和平均值(保留3位小数)。

*输入保证这些数都是不超过1000的整数。

*

*

*@paramargs

*@throwsIOException

*@throwsNumberFormatException

*/

packagecom.MyDem.MyDem5;

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStreamReader;

publicclassMyDem02{

publicstaticvoidmain(String[]args)throwsNumberFormatException,IOException{

//

intSIZE=3;

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

float[]arr=newfloat[SIZE];

for(inti=0;i

System.out.println("请输入"+(i+1)+"个实数");

arr[i]=Float.parseFloat(br.readLine());

}

floats=0;

for(inti=0;i

s+=arr[i];

}

System.out.println(SIZE+"个数的平均数为:

"+s/SIZE);

compareNub(arr);

}

publicstaticvoidcompareNub(floatarr[])

{floata=arr[0];

floatb=arr[0];

for(inti=1;i

if(arr[i]>a)

{

a=arr[i];

}

if(arr[i]

{

b=arr[i];

}

}

System.out.println("最大数为:

"+a);

System.out.println("最小数为:

"+b);

}

}

水仙花数(daffodil)

packagecom.MyDem.MyDem5;

publicclassMyDem03{

/**

*  输出100~999中的所有水仙花数。

若3位数ABC满足ABC=A2+B2+C2

*则称其为水仙花数。

*例如153=13+53十33,所以153是水仙花数。

*/

publicstaticvoidmain(String[]args){

//

for(inti=100;i<1000;i++)

{

daffodil(i);

}

System.out.println("循环完毕");

}

publicstaticvoiddaffodil(intn)

{

inta=n/100;

intb=n%100/10;

intc=n%10;

if(n==a*a*a+b*b*b+c*c*c)

{

System.out.println(n+"是一个水仙花数");

}

}

}

近似计算(approximation)

packagecom.MyDem.MyDem5;

publicclassMyDem04{

/**

*  计算,t/4=1-1/3+1/5-1/7+1/9-1/11+....

*直到最后一项小于10-6

*/

publicstaticvoidmain(String[]args){

//

doublea=1;

doubleq=1;

doubleb=1/3;

for(inti=0;i<100000000;i+=4){

a+=q/(1+i);

b+=q/(i-1);

if(q/(1+i)

q/(i-1)

&&i!

=0&&i!

=1)

{

System.out.println(a);

System.out.println(b);

System.out.println(4*(a-b));

break;

}

}

}

}

子序列的和(subsequence)

packagecom.MyDem.MyDem5;

importjava.text.DecimalFormat;

publicclassMyDem07{

/**

*

*输入两个正整数n

*例如n=2,m=4时,答案是0.42361;n=65536,m=655360时答案为0.00001。

*

*/

publicstaticvoidmain(String[]args){

//

doublen=65536;

doublem=655360;

doublea=0;

for(inti=0;i<=m-n;i++){

a+=(double)(1/((double)(i+n)*(i+n)));

}

DecimalFormatdf=newDecimalFormat("0.#####");

System.out.println(df.format(a));

}

}

分数化小数(decimal)

packagecom.MyDem.MyDem5;

importjava.math.BigDecimal;

publicclassMyDem08{

/**

*

*  输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。

*a,b≤106,c≤10。

*例如a=1,b=6,c=4时应输出0.1667。

*

*/

publicstaticvoidmain(String[]args){

//

inta=3;

ints=116;

intc=8;

doublef=(double)a/s;

BigDecimalb=newBigDecimal(f);

doublef1=b.setScale(c,BigDecimal.ROUND_HALF_UP).doubleValue();

System.out.println(f1);

}}

排列(permutation)

用1,2,3,…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:

def:

ghi=1:

2:

3。

输出所有解。

提示:

不必太动脑筋。

组合数

packagecom.MyDem.MyDem5;

importjava.text.DecimalFormat;

publicclassMyDem09{

/**

*

*  输入非负整数n和m,输出组合数(n!

)/(m!

(n-m)!

*其中m≤n≤20。

*

*/

publicstaticvoidmain(String[]args){

//

permutation(15,20);

}

publicstaticvoidpermutation(intn,intm)

{

if(n>=m)

{

doublex=jiecheng(n)/(jiecheng(m)*jiecheng(n-m));

DecimalFormatdf=newDecimalFormat("0");

System.out.println(df.format(x));

}

else

{

doublex=jiecheng(m)/(jiecheng(n)*jiecheng(m-n));

DecimalFormatdf=newDecimalFormat("0");

System.out.println(df.format(x));

}

}

privatestaticdoublejiecheng(intn){

//

doublea=1;

for(inti=1;i

a*=i;

}

//System.out.println(a);

returna;

}

}

孪生素数

packagecom.MyDem.MyDem5;

publicclassMyDem10{

/**

*

*如果n和n+2都是素数,则称它们是孪生素数。

输入m,输出两个数均

*不超过m的最大孪生素数。

5≤m≤10000。

*例如m=20时答案是17、19,m=1000时答案是881、883。

*

*/

publicstaticvoidmain(String[]ar

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

当前位置:首页 > 表格模板 > 调查报告

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

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