求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。输出结果的形式如:2+22+222=246;

程序分析:关键是计算出每一项的值。

  比如获取的数字为:a,出现的项数为:n

  总结一下,可以得到一下规律:

   1、第一项有一个a,最后一项有n个a

   2、 第1和第2项相差2*10,第2和第三项相差2*100,第k和第k+1项相差2*(10的k次方)
public class Test1{
    public static void main(String[] args) {

        int n=0,a=0;

        Scanner scanner=new Scanner(System.in);

        System.out.println("请输入a的值:");

        a=scanner.nextInt();

        System.out.println("请输入n的值:");

        n=scanner.nextInt();

        int[] arr=new int[n];//创建数组长度为输入的项数

        int i=1;//while循环初始化的值

        arr[0]=a;//数组的第一个值为3

        //把每一项的值赋值给数组里面的数

        while (i<n) {

            a*=10;

            arr[i]=a+arr[i-1];

            i++;

        }

        //求和

        int sum=0;

        for(int s:arr){

            sum+=s;//累加求和

            if (s==arr[n-1]) {

                System.out.print(s);

                break;//最后一次只输出结果

            }

            System.out.print(s+"+");//前面的值输出结果,后面还要加一个加号

        }

        System.out.println("="+sum);//完美结束

    }

}

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值