经典JAVA题六

求s=a+aa+aaa+...+aaaaa...aa的值

View Code
 1 package JAVA;
2
3 import java.util.ArrayList;
4 import java.util.Scanner;
5
6 public class test08 {
7
8 /**
9 * @param args
10 * 求s=a+aa+aaa+...+aaaaa...aa的值
11 */
12 public static void main(String[] args) {
13 // TODO Auto-generated method stub
14 int a,n;
15 Scanner in=new Scanner(System.in);
16 do{
17 System.out.print("请输入一个1到9的数字!");
18 a=in.nextInt();
19 }while(a<1||a>9);
20
21
22 do{
23 System.out.print("输入另一个1到9的数字n(用于表示相加的个数)!");
24 n=in.nextInt();
25 }while(n<1||n>9);
26
27 outSum1(a,n);
28 }
29
30 /*
31 * 方法一
32 */
33 private static void outSum(int a, int n) {
34 // TODO Auto-generated method stub
35 int temp=0;
36 double sum=0;
37 StringBuffer sb=new StringBuffer();
38 for(int i=1;i<=n;i++){
39 for(int j=1;j<=i;j++){
40 temp+=a*Math.pow(10, j-1); //得到每个数
41 }
42 sum+=temp;
43 sb.append(temp);
44 if(i<n){ //去掉最后一个加号
45 sb.append("+");
46 }
47 temp=0;
48 }
49 System.out.println(sb.toString()+"="+sum);
50 }
51
52 /*
53 * 方法二
54 */
55 private static void outSum1(int a,int n){
56 long sum=0;
57 int temp=a;
58 ArrayList<Integer> ab=new ArrayList<Integer>();
59 StringBuffer sb=new StringBuffer();
60 for(int i=1;i<=n;i++){
61 sum=sum+temp;
62 temp=temp*10+a;
63 ab.add(temp);
64 }
65
66 for(int i=0;i<ab.size();i++){
67 sb.append(ab.get(i));
68 if(i<ab.size()-1){
69 sb.append("+");
70 }
71 }
72 System.out.println(a+"+"+sb.toString()+"="+sum);
73 }
74 }



posted @ 2011-11-16 21:52  月亮的影子  阅读(174)  评论(0编辑  收藏  举报