• 用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
    • 3
    • 4
    • 5
    • 6

    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);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    4.运行截图

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    Javascript知识【JS方法和事件&正则&JS注册案例】
    JavaSE入门---认识类和对象
    【Python】八、函数的使用
    如何手写一个js工具库?同时发布到npm上
    机器学习笔记之最优化理论与方法(五)凸优化问题(上)
    Golang slice 通过growslice调用nextslicecap计算扩容
    算法通关村第十五关:白银挑战-海量数据场景下的热门算法题
    代码随想录Day22 LeetCode T39 组合总和 T40 组合总和II T131 分割回文串
    Git_02_查看本地未推送的commit记录
    (转)STR 内核做了什么
  • 原文地址:https://blog.csdn.net/SSS4362/article/details/125607522