long d1 = System.currentTimeMillis(); System.out.println("%d阶乘的结果:%s%n", 10, factorial(10)); long d2 = System.currentTimeMillis(); System.out.println("递归费时:%s%n", d2 - d1); } static long factorial(int n){ if(n == 1){ return 1; }else return n * factorial(n-1); }为什么运行不了
时间: 2023-12-19 13:06:31 浏览: 72
用数组求N的阶乘,可以运行
这段代码中的`System.out.println()`方法的格式字符串使用了C语言风格的格式化方式,应该使用Java的格式化方式。即用`%d`代替`%s`,代码应该修改为:
```
long d1 = System.currentTimeMillis();
System.out.printf("%d阶乘的结果:%d%n", 10, factorial(10));
long d2 = System.currentTimeMillis();
System.out.printf("递归费时:%d%n", d2 - d1);
static long factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
```
这样就能正常运行了。
阅读全文