大家好,今天我们来聊聊一个有趣的数学问题:如何计算一个序列的总和,序列的形式是s=a+aa+aaa+aaaa+aa...a,其中a的取值范围是[1-9]。这听起来是不是有点像数学题呢?别急,我会一步步带你解决它。
核心思路
这个问题的核心在于找到一个规律,然后通过编程实现。我们可以通过以下步骤来解决这个问题:
- 初始化一个计数器count,用来记录当前数字的位数。
- 初始化一个变量in,用来存储当前位数的数字。
- 初始化一个变量jn,用来存储序列的总和。
- 使用一个循环,直到count大于len(即序列的位数)。
- 在循环中,更新in和jn的值,并打印出当前的数字。
代码实现
public class JiSuan {
/*
* (群硕)5. 请写一个方法计算s=a+aa+aaa+aaaa+aa...a,其中a取值范围是[1-9],
* a作为这个方法的参数,s作为这个方法的返回值。例如: 假设a=1,则s=1 假设a=2,则s=2+22
* 假设a=9,则s=9+99+999+9999+99999+999999+9999999+99999999+999999999 请编程实现.
*/
public static void main(String[] args) {
// addNums();
test(4);
}
private static long test(int i) {
// TODO Auto-generated method stub
long count = 1;
long len=i;
int in = 0, jn = 0;
while (count <= len) {
in += i;
jn += in;
i = i * 10;
count++;
System.out.print(
