Java dectobin(n)函数_浙大JAVA实验题答案09answer.docx

实验9-1 Method的使用(二)

程序填空题,不要改变与输入输出有关的语句。

50010十进制转换二进制

输入一个正整数repeat (0

输入1个正整数n,将其转换为二进制后输岀。

要求定义并调用函数dectobin(n),它的功能是输出n的二进制。例如,调用dectobin(lO),输出 1010c

输出语句:System, out. print (t) ;//t为某位二进制数

例:括号内是说明

输入:

3 (repeat=3)

15

100

0

输出:

1111

1100100

0

import java. util. Sea rm er;

public class Test50010{

public static void ni3in(String args[]) {

int ri, repeat;

int i, n;

Seanner in二new Scanner(System, in);

repeat二in. nextTnt ();

for(ri=l;ri<=repeat;ri++){

n=in? nextlnt ();

/**/

dectobin(n);

System? out? printin ();

}

}

/**/

static void dectobin(int n){

String t=" n ; //保存二进制数

do {

n=n/2;//获得除2后的商

}while(n>0);

System, out .print (t) ; //木方法无返回值,需要在方法体中输!11结果

}

}

说明:本题中方法dectobin(n)的输岀虽然与要求有所岀入,但上传是正确的。

以下用递归算法实现方法的设计:

50001 求 1 + 1/2! +???? + 1/n!

输入一个正整数repeat (0

s 二 1 + 1/2! +????+ 1/n!

要求定义并调用函数fact (n)计算n的阶乘。

例:括号内是说明 输入:

(repeat二2)

2(n=2)

10(n=10)

输出:

1. 5

1.7183

import java .util. Scannet;

public class Test50001 {

public static void inain(String[] args) {

int ri,repeat;

int i, n;

double s;

Scanner in=new Scanner (System, in); repeat二in. nextlnt (); for(ri=l;ri<=repeat;ri++) { n二in. ncxtlnt ();

/**/

s=0;

for(i=l;i<=n;i++) s+=l? Q/fact(i);

System, out. printin ((long) (s*10000+0? 5)/10000.);

/**/

static double fact (int n) {//递归方法 if(n==l)return 1;

else return n^fact(n-1);

}

50002 求 a+aa+aaa+aa-e-a

输入一个正整数repeat (0

要求定义并调用函数f n (a, n),它的功能是返冋aa???a( n个小。例如,f n (3, 2)的返回值是33。 例:括号内是说明

输入

2 (repeat二2)

2 3 (a=2, n二3)

8 5 (a二& n二5)

输出

246(2+22+222)

98760 (8+88+888+8888+88888)

import java. util. Scanner;

public class Test50002{

public static void main(String args[]){

int ri, repeat;

int i, n, a;

long sn;

Scanner in=ncw Scanner(System, in); repeat二in. nextlnt ();

for (ri=l; ri〈二repeat; ri++) {

a二in. nextlnt (); n二in. nextlnt ();

/**/

sn=0;

for(i=l;i<=n;i++)

sn+=fn (a, i);

System, out. println(sn);

}

}

/**/

static int fn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值