A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package a1到10;

import java.util.Scanner;

public class 超级相加8 {

        /**
         *题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
程序分析:关键是计算出每一项的值。
         */
        public static void main(String[] args) {
                int s=0;
        //Math.pow(10, 5)  10的五次方
                Scanner sc=new Scanner(System.in);
                System.out.println("请输入数字0~9用与计算中的a");
               
                int a=sc.nextInt();
                System.out.println("请输入要运算多少次");
       int  time=sc.nextInt();       
       int sum=0;
                if(a>9||a<0||time<1){
                        System.out.println("输入错误,请重新输入");
                }else{
                        //规律  下面是  输入a  和  time 5
                //s=        a*10000+a*1000+a*100+a*10+a*1      11111
//                                   +a*1000+a*100+a*10+a*1     1111
//                                          +a*100+a*10+a*1    111
//                                                +a*10+a*1   11
//                                                      a*1  1
                        //规律  总结 可以这么写  s=a*10000*1+a*1000*2+a*100*3+a*10*4+a*1*5
                        //                   a*Math.pow(10,time-1)*(i+1)
                       
                       
                       
                           //a*Math.pow(10,time-i)*(i+1)---i从0开始到time 结束
                       
                       
                        //设 time=5  a=1
                        for(int i=0;i<time;i++){
                               
                                sum+=a*Math.pow(10, time-i-1)*(i+1);
                        }
                                System.out.println("最后的值为~~~~"+sum);
                       
                       
                }
               

        }

}

2 个回复

倒序浏览
public class Demo08 {
        static int a;
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个10以内的值:");
                 a = (int)sc.nextInt();
                 if(a>=10||a<0) {
                         return;
                 }
                System.out.println("请输入要求数的个数:");
                int number = sc.nextInt();
                int allSum = 0;
                for(int i = 1;i <= number; i++) {
                        System.out.print(getSingleNumber(i)+" ");
                         allSum += getSingleNumber(i);
                }
                System.out.println(allSum);
        }
        public static int getSingleNumber(int n) {
                if(n==1) {
                        return a;
                }
                return getSingleNumber(n-1)*10+a;
        }
}
回复 使用道具 举报 1 0
上面的是用递归做的。有问题可以一起探讨。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马