那这个方法是什么意思啊 public static int twoPower(int index) { BigDecimal result = BigDecimal.ONE; BigDecimal two = BigDecimal.ONE.add(BigDecimal.ONE); for (int i = 0; i < index; i++) { result = result.multiply(two); } String s = result.toString(); int sum = 0; System.out.println(s); for (char c : s.toCharArray()) { sum += (c - '0'); } return sum; }
去看看API手册,看看BigDecimal的add,multiply方法,你就明白什么意思了。 public static int twoPower(int index) { BigDecimal result = BigDecimal.ONE; //得到BigDecimal的1 BigDecimal two = BigDecimal.ONE.add(BigDecimal.ONE);//1+1 for (int i = 0; i < index; i++) { result = result.multiply(two);//循环乘以2 } String s = result.toString();//变成String类型的 int sum = 0; System.out.println(s); for (char c : s.toCharArray()) {//把String变成char[]数组再循环处理 System.out.println(c); sum += (c - '0');//得到每个char与'0'的assic码的差再相加 } return sum; }
BigDecimal result = BigDecimal.ONE; BigDecimal two = BigDecimal.ONE.add(BigDecimal.ONE);result 赋值为1 two 将一加上一的结果
因而:
result =1;
two=1+1;
public static int twoPower(int index)
{
BigDecimal result = BigDecimal.ONE;
BigDecimal two = BigDecimal.ONE.add(BigDecimal.ONE);
for (int i = 0; i < index; i++)
{
result = result.multiply(two);
}
String s = result.toString();
int sum = 0;
System.out.println(s);
for (char c : s.toCharArray())
{
sum += (c - '0');
}
return sum;
}
BigDecimal result = BigDecimal.ONE; //得到BigDecimal的1
BigDecimal two = BigDecimal.ONE.add(BigDecimal.ONE);//1+1
for (int i = 0; i < index; i++) {
result = result.multiply(two);//循环乘以2
}
String s = result.toString();//变成String类型的
int sum = 0;
System.out.println(s);
for (char c : s.toCharArray()) {//把String变成char[]数组再循环处理
System.out.println(c);
sum += (c - '0');//得到每个char与'0'的assic码的差再相加
}
return sum;
}
BigDecimal two = BigDecimal.ONE.add(BigDecimal.ONE);result 赋值为1
two 将一加上一的结果