标题: a + aa + aaa...的问题 [打印本页] 作者: wasabi 时间: 2016-9-22 21:33 标题: a + aa + aaa...的问题 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
* 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
程序分析:关键是计算出每一项的值。
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字的个数");
int a = sc.nextInt();
System.out.println("请输入一个数字");
int b = sc.nextInt();
String s1 = b + "";
String s2 = "";
int sum = 0;
String[] arr = new String[a];
for (int i = 0; i < arr.length; i++) {
s2 += s1;
arr[i]= s2;
}
for (String string : arr) {
sum += Integer.parseInt(string);
}
System.out.println(sum);
}
这个写法有个bug 负数就不行了,有没有其他思路的解法
class Game {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字");
int a = sc.nextInt();
System.out.println("几个数字相加?");
int b = sc.nextInt();
int max = 0;
int sum = 0;
for (int j = 0 ;j < b ; j++ ) {
max += a*(int)Math.pow(10,j); //通过循环 求出了最大的一个数
}
for (int i = 0 ;i < b ; i++ ) {
sum += max/(int)Math.pow(10,i); //最大的数不断除10求出次大的数,然后累加给sum
}
System.out.println(sum);
}
}作者: lipeng518 时间: 2016-9-22 22:10
其实我感觉使用集合效果会好一点,而且能直接计算作者: 17721165644 时间: 2016-9-22 22:15
用递归:2*n + 2*10*(n-1)+.....作者: wasabi 时间: 2016-9-23 21:42