《JAVA基础实例》(第08例) 求 s=a+aa+aaa+aaaa+aa...a 的值

该博客介绍了一个Java程序,用于计算一个数字(如2)连续拼接自身形成的新数(2, 22, 222等)相加的总和。用户通过键盘输入数字和拼接次数,程序根据分析的规律(每次增加的数是前一项的十倍加首数字)计算结果并输出。

一、题目

求 s=a+aa+aaa+aaaa+aa…a 的值

二、题思路

例如 2+22+222+2222+22222(此时共有 5 个数相加),几个数相加有键盘控制。

分析得出:2+(2* 10+2)+(22* 10+2)

三、代码实现

package basic.example;

import java.util.Scanner;

/**
 * Description: 求 s=a+aa+aaa+aaaa+aa...a 的值
 *
 * @author Eric
 * @date 2022/3/29
 * @version 1.0
 *
 * <pre>
 * 修改记录:
 * 修改后版本   修改人       修改日期         修改内容
 * 2022/3/29   Eric      2022/3/29    Create
 * </pre>
 *
 */
public class BasicFor08 {

    /**
     * 求 s=a+aa+aaa+aaaa+aa...a 的值
     * 思路:
     * 例如 2+22+222+2222+22222(此时共有 5 个数相加),几个数相加有键盘控制。
     * 分析得出:2+(2* 10+2)+(22* 10+2)
     * 每次都是前一项的十倍 + 第一个数   n*10 + n,所以每一次加完需要计算下一次结果
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int targetNum = scanner.nextInt();
        System.out.println("请输入次数:");
        int times = scanner.nextInt();
        int first = targetNum;
        int sum = 0;
        for (int i = 0; i < times; i++) {
            sum += targetNum;
            targetNum = targetNum * 10 + first;
        }
        System.out.println("和为:" + sum);
    }
}

四、结果截图

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值