跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

计算s=a+aa+aaa+aaaa+aa...a,a的取值范围是[1-9],怎么做?

大家好,今天我们来聊聊一个有趣的数学问题:如何计算一个序列的总和,序列的形式是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(
                            

相关文章