import java.util.Scanner; //题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 //其实这个题是分两步分来想,第一部分是计算和,第二部分是等式右边的数怎么相加 public class Eight8Digit { public static void main(String[] args) { // TODO Auto-generated method stub //键盘录入 Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int b=sc.nextInt(); System.out.println(express(a,b)+expand(a,b)); } //等式右边的数表达式 public static String express(int a,int b) { //这个地方到底是用String 还是StringBuffer呢?思考了一下,因为每次String //类型的值都要改变,所以还是用StringBuffer StringBuffer sb=new StringBuffer(); StringBuffer sb1=new StringBuffer(); for(int j=1;j<b+1;j++) { sb=sb.append(a); sb1=sb1.append(sb); //当j<b时,这个时候你要添加等于"+" if(j<b) { sb1=sb1.append("+"); } } sb1=sb1.append("="); return sb1.toString(); } //等式左边的数之和 public static long expand(int a,int b) { //定义加数 //注意这里的数应该是long类型,因为int类型很显然不够 long sum=0; long sum1=0; //用循环来解决这个问题 for(int i=1;i<b+1;i++) { sum=sum*10+a; sum1=sum+sum1; } return sum1; } }