编程计算8+88+888+8888+…的前16项的和。(10分)
class Sum{
public static void main(String args[]){
double s=0,a=8; //初始化2分
for(int i=1;i<=16;i++){ //循环语句正确得2分,用while或do while也可
s=s+i*a; //累加2分
a=a*10+8; //增量更新3分
}
System.out.println("Sum="+s); //输出正确得1分
}
这里的增量更新是怎样的?具体运算过程是怎样的?
for循环从1开始,sum初值为0,sum+item为8,则前1项和为8 ;
item*10=80;再加a等于88;于是从第二项开始item变88;i++,i变为2;
i=2时,sum=8+88;item=88*10+a;a在循环中不变一直是常量8:因此第三项item=888; i++; i = 3;
...
累加应该是 s+=a;
i=1 a=8
i=2 a=a*10+8 = 8*10+8=88
i=3 a=a*10+8 = 88*10+8 =888
以此类推