java整段标记_求这段java代码清晰的注释,最好标注到每一句。谢谢

packagecn.zmx;publicclassMultiply{publicMultiply(){}publicMultiply(intx){this.setX(x);}privateintx=0;privateintlength=0;publicintgetX(){returnx;}publicvoidsetX(intx){this...

package cn.zmx;

public class Multiply {

public Multiply(){

}

public Multiply(int x) {

this.setX(x);

}

private int x = 0;

private int length=0;

public int getX() {

return x;

}

public void setX(int x) {

this.x = x>0?x:-x;

}

public int getLength() {

return length;

}

public void setLength(int length) {

this.length = length;

}

public static void main(String[] args) {

Multiply m = new Multiply(10000);

System.out.println("运算开始...");

long startTime = System.currentTimeMillis();

byte[] des = m.calculate(new byte[1]);

for(int i=0;i

System.out.print(des[i]);

if((i+1)%50==0){

System.out.println();

}

m.setLength(m.getLength()+1);

}

long endTime = System.currentTimeMillis();

System.out.println("\n运算结束!\n共耗时:"+(endTime-startTime)/1000+"秒"+(endTime-startTime)%1000+"毫秒");

System.out.println("总长度为:"+m.getLength());

}

public String showResult(){

Multiply m = new Multiply(this.getX());

String result="";

long startTime = System.currentTimeMillis();

byte[] des = m.calculate(new byte[1]);

for(int i=0;i

result += des[i];

m.setLength(m.getLength()+1);

}

long endTime = System.currentTimeMillis();

return result+","+m.getLength()+","+(endTime-startTime)/1000;

}

public byte[] calculate(byte[] des) {

des[0] = 1;

for (int i = 0; i

des = ArrayMultiply(des,tobyteArray(i+1, 0, new byte[1]),new byte[1]);

}

return des;

}

public byte[] calculate(int x,byte[] des) {

des = tobyteArray(x, 0, new byte[1]);

return des;

}

public byte[] ArrayMultiply(byte[] b,int x,byte[] result,int offset){

int carrier = 0;

byte[] bt = (byte[])b.clone();

for(int i=bt.length-1;i>=0;i--){

bt[i] *= x;

int temp = carrier;

carrier = (bt[i]+carrier)/10;

bt[i] = (byte) ((bt[i]+temp)%10);

if(i-1<0&&carrier>0){

result = new byte[bt.length+1];

System.arraycopy(bt,0,result,1,bt.length);

result[0] = (byte) carrier;

if(offset>0){

byte[] bb = shiftArray(offset,result);

return bb;

}

return result;

}

}

if(offset>0){

byte[] bb = shiftArray(offset, bt);

return bb;

}

return bt;

}

private byte[] shiftArray(int offset, byte[] bt) {

byte[] bb = new byte[bt.length+offset];

System.arraycopy(bt,0,bb,0,bt.length);

return bb;

}

// 因为字数限制有些没发出来

}

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值