RT ,最近购入了算法红宝书,并按照官网的一键配置 java 环境( https://lift.cs.princeton.edu/java/windows/)装好了环境,但是在使用书上的代码时,传参时出现很多问题(因其使用很多自己编写的库): 如求平均:
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;
public class Average {
public static void main(String[] args) {
double sum = 0.0;
int cnt = 0;
while (!StdIn.isEmpty()){
sum+=StdIn.readDouble();
cnt++;
}
double avg = sum/cnt;
StdOut.printf("Average is:%.5f\n",avg);
}
}
当我在命令行运行时直接报错:
Microsoft Windows [版本 10.0.19042.1415]
(c) Microsoft Corporation 。保留所有权利。
D:\Algorithms\4th\Code\hello>java Average
Exception in thread "main" java.lang.NoClassDefFoundError: edu/princeton/cs/algs4/StdIn
at Average.main(Average.java:8)
Caused by: java.lang.ClassNotFoundException: edu.princeton.cs.algs4.StdIn
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 more
书上的实例是:
/*
Standard input and standard output. StdIn.java and StdOut.java are libraries for reading in numbers and text from standard input and printing out numbers and text to standard output. Our versions have a simpler interface than the corresponding Java ones (and provide a few technical improvements). RandomSeq.java generates random numbers in a given range. Average.java reads in a sequence of real numbers from standard input and prints their average on standard output.
*/
% java Average
10.0 5.0 6.0 3.0 7.0 32.0
3.14 6.67 17.71
<Ctrl-d>
Average is 10.05777777777778
这只是期中一个,还有例如 BinarySearch 传文本为参数进去,结果传进去之后他的程序也不运行,不知道为啥... 在使用这种外国的书籍时,找不到能够沟通的人和修错教程,是真的痛苦...
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.