题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
题目分析:每次累加的都是a的n连,所以要获取每一次相加的数值
获取值的方法:m=m+a;a=a*10;
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入你要计算的数字,回车键结束:");
int a =scanner.nextInt();
System.out.println("请输入你要计算的次数,回车键结束:");
int frequency =scanner.nextInt();
leiJia(a, frequency);
}
public static void leiJia(int a, int frequency) {
//使用m来保存每一次相加的数值。
int m = 0;
int sun = 0;
for (int n = 0; n < frequency; n++) {
//获取每次累加的n个a;
m += a;
//并且每次输出过程
System.out.print(m);
if (n == frequency - 1) {
//如果是最后一个数,则不需要输出 +
System.out.print("");
} else {
//不是最后一个数,后面还有其他的数,格式上输出+
System.out.print("+");
}
//使用m的值完成赋值与运算。
sun += m;
//每一次完成之后,对a重新赋值,方便下一次运算
a *= 10;
}
System.out.print("=" + sun);
}
结果为: