public class SpecialSum { private int digit; private int count; public SpecialSum(int digit, int count) { if (digit < 0 || digit > 9) { throw new IllegalArgumentException(); } this.digit = digit; this.count = count; } public int sum() { int tmp = digit; int sum = 0; while (count > 0) { sum += tmp * count; count--; tmp *= 10; } return sum; } public static void main(String[] args) { if (args.length == 2) { int digit = Integer.parseInt(args[0]); int count = Integer.parseInt(args[1]); System.out.println(new SpecialSum(digit, count).sum()); } else { System.out.println("Usage : ~ <digit> <count>"); } } }
a應該限定1~9 a+aa+aaa....可以找出規則? a*n + a*(n-1)*10 a*(a-2)*100.... 這樣就很適合用循環來做 int a=1; int n=9; double sum=0; for(int i=0;i<n;i++){ sum+= a*(n-i)*Math.pow(10, i); }
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入数字:"); int digital = input.nextInt(); System.out.println("请输入个数:"); int count = input.nextInt();
long sum = 0; int num = digital; //每次的数字都是前一个数字乘以10,再加上该数字 for(int i=0; i<count; i++) { sum += num; num *= 10; num += digital; } System.out.println("总和是:" + sum); } }
再请教一题: 采用递归的方法计算 n!(n=8). public class exam_12() static long Fac(_____){ if(_____) return 1; else _____; } public static void main(String[] args){ int n=8; system.out.println(n+"!="+Fac(n)); } } 这书上的一段代码不是很理解. 能帮我讲解下 每条语句的意思嘛? 谢谢了
if (digit < 0 || digit > 9) {
throw new IllegalArgumentException();
}
this.digit = digit;
this.count = count;
} public int sum() {
int tmp = digit;
int sum = 0;
while (count > 0) {
sum += tmp * count;
count--;
tmp *= 10;
}
return sum;
} public static void main(String[] args) {
if (args.length == 2) {
int digit = Integer.parseInt(args[0]);
int count = Integer.parseInt(args[1]);
System.out.println(new SpecialSum(digit, count).sum());
} else {
System.out.println("Usage : ~ <digit> <count>");
}
}
}
a+aa+aaa....可以找出規則?
a*n + a*(n-1)*10 a*(a-2)*100....
這樣就很適合用循環來做
int a=1;
int n=9;
double sum=0;
for(int i=0;i<n;i++){
sum+= a*(n-i)*Math.pow(10, i);
}
import java.util.Scanner;public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入数字:");
int digital = input.nextInt();
System.out.println("请输入个数:");
int count = input.nextInt();
long sum = 0;
int num = digital;
//每次的数字都是前一个数字乘以10,再加上该数字
for(int i=0; i<count; i++) {
sum += num;
num *= 10;
num += digital;
}
System.out.println("总和是:" + sum);
}
}
采用递归的方法计算 n!(n=8).
public class exam_12()
static long Fac(_____){
if(_____)
return 1;
else
_____;
}
public static void main(String[] args){
int n=8;
system.out.println(n+"!="+Fac(n));
}
}
这书上的一段代码不是很理解.
能帮我讲解下 每条语句的意思嘛?
谢谢了