求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
比如我让2循环3次。
public static void 程序8() {
System.out.println("请输入一个数字: ");
Scanner o= new Scanner(System.in);
int a=o.nextInt();
System.out.println("循环多少次?: ");
int b=o.nextInt();
int news=0;
int jieguo=0;
for(int i=0;i<b;i++) {
news=news*10+a;
jieguo=news+jieguo;
System.out.println("结果是"+news+" "+jieguo);
}
}
for循环里面的,i<b的意思是i如果小于控制台b输入的值循环次数则一直循环 ,news的值一开始是0,所以0*10=0,news加了a(数值是2)之后则是2,jieguo这里就是news(2)+jieguo(0)=2,第一次循环结束。
第二次循环开始后继承了第一次循环的值,也就是news(2)*10+a=22.
jieguo这里意思就是news(22)+jieguo(2)=24,第二次循环结束。
第三次循环继承了第二次循环的值,也就是news(22)*10+a=224.
jieguo这里意思就是news(224)+jieguo(22)=246.至此循环结束出来结果。
不知道这样子理解对不对呢???刚开始学习编程,
可能数学逻辑厉害的人一下子就想通了吧 像我数学逻辑很差的光是理解这两句代码的意思花了2个多小时才琢磨出来,太失败了~
理解的慢不是数学逻辑差,是对数据存储形式,以及变量间赋值方式不清楚导致的
理解的没什么大问题,多学学,多练练,加油