用java实现 s=a+aa+aaa+aaaa+aa...a 的值,a是用户任意输入的数字,n为最后一个累加的数的位数(累加数的个数)

用java实现 s=a+aa+aaa+aaaa+aa…a 的值,a是用户任意输入的数字,n为最后一个累加的数的位数(累加数的个数)

1.分析

1.1 如何进行输入?

需要用户输入一个数字意味着需要建立一个Scanner对象,用来获取接收的内容

而接收的内容中的内容是数字,因而选择Scanner对象名.nextInt()方法

注意:Scanner对象名.next()方法也可以获取键盘中输入的数字,但是它是以字符串形式获取的,你需要把字符串通过Integer包装类把其转换成int类型的数据,这样显然比.nextInt方法麻烦,因此一般选择.nextInt()方法接收键盘中输入的数值型数据。

//将String类型的数值型数据转换成int类型的数据的方法如下:
String name=s.next();
Integer t=new Integer(name);
System.out.println(t==12);
int temp=t;
//此时temp为int类型的数值型数据

1.2 数字的变化规则是什么?

以s=2+22+222+2222为例

我们发现22=2*10+2

​ 222=22*10+2

​ 2222=222*10+2

也就是说从第二个数开始,每个数=前一个数*10+每位上面的数值(手动输入)

1.3 如何判断加到什么时候截至?

s=1+11;----------需要进行加法运算的数的个数为2,加法运算的最后一位的位数为2

s=3=33+333; ----------需要进行加法运算的数的个数为3,加法运算的最后一位的位数为3

s=2+22+222+2222 ----------需要进行加法运算的数的个数为4,加法运算的最后一位的位数为4

通过上面三个例子,我们不难发现加法运算的截至条件是,判断是否达到了加法运算的数的个数即是否达到了加法运算的次数------->这个也可以通过键盘进行输入的

1.4 如何按照a+aa+aaa+aaaa这种形式进行结果的输出?

需要对每个中间值进行打印结果的输出,那就需要在for循环里面进行打印;

当不是最后一个数字打印时,则要打印数字和加法符号

当是最后一个数字打印时,则需要打印数字和等号

循环结束后再打印得到的求和结果即可.

2.思路总结

a.定义一个Scanner对象,通过.nextInt()方法来接收输入的数值位(每一位上面的数字)m

b.通过.nextInt()方法接收输入的加法运算的数的个数n

c.定义一个变量temp用于存储数值位,目的是实现加法运算值的变化

d.建立一个for循环,用于判断是否加到了最后一位数

e.判断是否是最后一位数字,若不是,则打印数字和加法符号

若是,则只需要打印数字和等号

f.把需要进行加法运算的数加入sum中,然后把该数变为下一个需要进行加法运算的数

d.输出得到的求和结果

3.源代码

import java.util.Scanner;
public class Work{
    public static void main(String[] args) {
        System.out.println("求s=a+aa+aaa+aaaa+aa...a,其中a为每位上面的相同数值,n为加法运算次数");
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入a的数值:");
        int value=scanner.nextInt();
        System.out.println("请输入n的数值:");
        int n=scanner.nextInt();
        int sum=0,temp=value;
        for (int i = 0; i <n; i++) {
            if(i==n-1){
                System.out.print(temp+"=");
            }else{
                System.out.print(temp+"+");
            }
            sum+=temp;
            temp=temp*10+value;
            //注意加法运算右边的数为相同数值,不能加上temp
        }
        System.out.println(sum);
    }
}

4.运行截图

在这里插入图片描述

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSS4362

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值