从网上找到一份编程练习题,我决定将里面的题目全都做一遍。
/*
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。 ?
*/
import java.util.Scanner;
class ZuHeShuZi {
public static void main(String[] args) {
System.out.println("本程序将计算形如s=a+aa+aaa+aaaa+aa...a的值\n--------------------------------");
Scanner sc=new Scanner(System.in);
int a=0;
int n=0;
//检查非法值
while(true){
System.out.print("请输入a的值(1~9之间):");
a=sc.nextInt();
if (a<1 || a>9){
System.out.println("输入不合法!");
continue;
}
break;
}
//检查非法值
while(true){
System.out.print("请输入要计算数字的个数n(大于0):");
n=sc.nextInt();
if (n<=0){
System.out.println("输入不合法!");
continue;
}
break;
}
long sum=ZuHeShuZi(a,n); //输出表达式和结果
System.out.println("\b="+sum); //利用退格,抹掉最后一个+号
}
//生成表达式并求和
public static long ZuHeShuZi(int a,int n){
long sum=0L;
long temp=0L;
for (int i=1; i<=n; i++){
temp=temp*10+a;
System.out.print(temp+"+");
sum+=temp;
}
return sum;
}
}
/*
输出结果
本程序将计算形如s=a+aa+aaa+aaaa+aa...a的值
--------------------------------
请输入a的值(1~9之间):2
请输入要计算数字的个数n(大于0):5
2+22+222+2222+22222=24690
*/
|
|