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;
}
}
11 累加问题
最新推荐文章于 2022-10-20 17:02:30 发布