我正在努力将Java代码转换为javascript。为此,例如,我正在将public静态int primesolution转换为函数primesolution。我不太知道我是否在转换它的正确轨道上。我被困在公共静态空main(String[]args)中。如何将此函数转换为Javascript。非常感谢任何帮助。
import java.lang.Math;
public class EvaluateDivisors {
public static void main(String[] args) {
try {
long a = Long.parseLong(args[0]);
long b = Long.parseLong(args[1]);
int k = Integer.parseInt(args[2]);
if (a <= 1 || b <= a) {
error("Error: must have 1 < A < B");
}
if (k <= 0 || k % 2 == 0) {
error("Error: K must be a positive odd number");
}
System.out.println(solution(a, b, k));
} catch (IndexOutOfBoundsException e) {
error("Usage: EvaluateDivisors A B K");
} catch (NumberFormatException e) {
error("Error: arguments must be integers");
}
}
private static int solution(long a, long b, int k) {
if (prime(k)) {
return primeSolution(a, b, k);
}
int result = 0;
for (long n = (long) Math.sqrt(a); n*n <= b; n++) {
int divisors = 3;
for (long m = 2; m < n && divisors <= k; m++) {
if (n*n % m == 0) {
divisors += 2;
}
}
if (divisors == k) {
result++;
}
}
return result;
}
private static int primeSolution(long a, long b, int k) {
int result = 0;
int n = 2;
while (Math.pow(n, k - 1) < a) {
n++;
}
while (Math.pow(n, k - 1) <= b) {
if (prime(n++)) {
result++;
}
}
return result;
}
private static boolean prime(int n) {
for (int m = 2; m <= Math.sqrt(n); m++) {
if (n % m == 0) {
return false;
}
}
return true;
}
private static void error(String message) {
System.err.println(message);
System.exit(1);
}
}
我用JavaScript转换的代码
function EvaluateDivisors {
function main(String[] args) {
try {
long a = Long.parseLong(args[0]);
long b = Long.parseLong(args[1]);
int k = Integer.parseInt(args[2]);
if (a <= 1 || b <= a) {
error("Error: must have 1 < A < B");
}
if (k <= 0 || k % 2 == 0) {
error("Error: K must be a positive odd number");
}
System.out.println(solution(a, b, k));
} catch (IndexOutOfBoundsException e) {
error("Usage: EvaluateDivisors A B K");
} catch (NumberFormatException e) {
error("Error: arguments must be integers");
}
}
function solution(long a, long b, int k) {
if (prime(k)) {
return primeSolution(a, b, k);
}
int result = 0;
for (long n = (long) Math.sqrt(a); n*n <= b; n++) {
int divisors = 3;
for (long m = 2; m < n && divisors <= k; m++) {
if (n*n % m == 0) {
divisors += 2;
}
}
if (divisors == k) {
result++;
}
}
return result;
}
function primeSolution(long a, long b, int k) {
int result = 0;
int n = 2;
while (Math.pow(n, k - 1) < a) {
n++;
}
while (Math.pow(n, k - 1) <= b) {
if (prime(n++)) {
result++;
}
}
return result;
}
function prime(int n) {
for (int m = 2; m <= Math.sqrt(n); m++) {
if (n % m == 0) {
return false;
}
}
return true;
}
function error(String message) {
console.log(message);
System.exit(1);
}
}
您应该使用事件侦听器进行文档加载(它将在加载html后执行其内容):
document.addEventListener("DOMContentLoaded", function(){
// Your main() code here
});
or change it to classic function with parameters like this:
function mainFunction(yourVar)
然后,JS是动态类型化语言,所以必须使用int、long、string等的通用变量istead。
然后,您可以将其他函数与上面的函数并排放置,因此最终的javascript代码如下所示:
// Use function like this:
// function yourFunction(parameter1, parameter2, ...) {
// or use document DOMContentLoaded event listener:
function yourFunction(a, b, k) {
try {
if (a <= 1 || b <= a) {
error("Error: must have 1 < A < B");
}
if (k <= 0 || k % 2 == 0) {
error("Error: K must be a positive odd number");
}
console.log(solution(a, b, k));
} catch(e) {
error("Usage: EvaluateDivisors A B K");
}
};
function solution(a, b, k) {
if (prime(k)) {
return primeSolution(a, b, k);
}
var result = 0;
for (var n = Math.sqrt(a); n * n <= b; n++) {
var divisors = 3;
for (var m = 2; m < n && divisors <= k; m++) {
if (n * n % m == 0) {
divisors += 2;
}
}
if (divisors == k) {
result++;
}
}
return result;
}
function primeSolution(a, b, k) {
var result = 0;
var n = 2;
while (Math.pow(n, k - 1) < a) {
n++;
}
while (Math.pow(n, k - 1) <= b) {
if (prime(n++)) {
result++;
}
}
return result;
}
function prime(n) {
for (var m = 2; m <= Math.sqrt(n); m++) {
if (n % m == 0) {
return false;
}
}
return true;
}
function error(message) {
console.log(message);
}
我建议您使用JavaScript验证程序:http://esprima.org/demo/validate.html
然后调试浏览器控制台(在windows上,您可以使用F12在几乎任何浏览器中打开它)
而要在w3学校上搜索帮助,其令人敬畏的帮助来源:https://www.w3schools.com/js/
我有一个wordpress插件,可以上传用户头像。我正在尝试使用一段显示缩略图的代码,并将其放在一个短代码中,这样我就可以将缩略图放在网站的任何位置。 我对php比较陌生,我知道如何为wordpress启动一个短代码,但我不知道如何构造短代码来承载php。有谁能给我提个建议吗? php下面的代码是插件文件的原文: 我想放在短代码中的代码如下,基本上它显示了缩略图。我试图用这个在functions.
问题内容: 我已经在Swift中编写了一个库,但无法将其导入到用Objective-C编写的当前项目中。 有什么方法可以导入吗? 问题答案: 您需要导入。请注意,这是目标名称-其他答案会导致使用类名称的错误。 这个单个文件是一个自动生成的标头,它为项目中所有用注释或继承的Swift类定义了Objective-C接口。 注意事项: 如果您的目标名称包含空格,请用下划线替换(例如,成为) 如果目标是框
问题内容: 我一直在尝试将数组写入文件。我知道如何将整数或字符串写入文件,但是要带一个数组会使我感到困惑。我现在正在使用这个: 问题答案: 就像其他人说的那样,您可以循环遍历数组并逐个打印出元素。为了使输出显示为数字而不是您看到的“字母和符号”,您需要将每个元素转换为字符串。因此,您的代码将如下所示: 如果您只想打印类似的数组,则可以使用此衬纸替换循环:
我需要使用restAssuret-java创建测试来测试REST API。为了获得一个身份验证令牌(OAuth2.0),我需要发送来自邮递员的请求,如下面的屏幕所示。但是,在java测试中,我不能使用Postman。你知道获取身份验证令牌的java代码应该是什么样子吗?
问题内容: 我有一个这样的课: 成本,利润和标价列为“ BigDecimal”,因为在原始(C#)应用中,它们为Decimal 因此定义了相应的SQLite表: 最接近Decimal(C#)或BigDecimal(Java)的SQLite是REAL,这是SQLite唯一的浮点数据类型。 在扩展SQLiteOpenHelper的类中,我试图从表中选择值并将它们存储在我的自定义类类型的ArrayLis
问题内容: 我想发送多个随机值。我认为数组是发送它们的最佳方法。但是我不知道如何向Socket写一个数组? 我的Java课: 导入java.io.ByteArrayOutputStream; 导入java.io.IOException; 导入java.io.InputStream; 导入java.net.Socket; 导入java.io. *; 导入java.util.Random; 问题答案: