11 累加问题

来源:互联网 发布:在线网络测速 编辑:程序博客网 时间:2024/06/06 02:18
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//类型的值都要改变,所以还是用StringBufferStringBuffer 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;        }}

0 0
原创粉丝点击