我已经得到了一个模拟测试来完成java脚本,但是我很难计算出如何使用for循环通过预定义的变量数来计数,然后将该数字用于其他方程。
这就是我要做的..。
例如,起始位置为1-9,加权因子为10-2。
SP=WF 1\x{e 010} 10,2\x{e76f} 9,3\x{e76f} 8,4\x{e76f} 7,5\x{e} 6,6\x{e76f} 5,6\x{e 010}5,7\x{e76f} 4,8\ 3,9\x{e76f}2
这是我到目前为止所做的代码,但是在使用for循环来计数数值var而不是1-9时,我有点被困住了。我跳过了它,继续运行的代码,我只是不能工作for循环,也无法完成var的整个部分,我挣扎着。
//setting variable to equal a number
var number = "4010232137";
//return value is set to 0 to use as a boolean so if code is false before then IF statement not used
var returnValue = 0;
//confirming length of number so it meets reuirement of being 10 digits long
var length = n.length;
var weightFactor = 11 - i;
// get the "ith" character
c = n.charAt(i);
var result = c * weightFactor;
var total = total + result;
}
}
var tenthDigit = number.slice(9);
var remainder = total % 11;
var checkDigit = 11 - remainder;
if(checkDigit == 11){
var checkDigit = 0;
}
if(checkDigit == tenthDigit){
var returnValue = 1;
}
WScript.echo(returnValue)
}发布于 2014-09-09 11:49:08
你想要做的事情很简单,一步一步地走:
var number = "4010232137";
var result = 0;
var wf = 10;这些是您的初始变量,结果将包含乘法后的和,加权因子将从10开始,在每一个循环间隔后会减少1:
for(var i=0; i<number.length - 1; i++){ //multiplying first '9' digits by wf
result += number[i]*wf;
wf--;
}这是一个简单的循环,用来将前9位数字乘以wf并加和。看看wf是如何减少1的,所以第一个数字将被乘以10,第二个数字乘以9,等等。在这种情况下,和(结果)将是'92‘。
var remainder = result % 11;
var checkDigit = 11 - remainder;接下来,我们计算了剩余部分和checkDigit。
var tenthDigit = number[number.length-1]; //last digit
var returnValue = 0;
if(checkDigit == 11)
checkDigit = 0;
else if(checkDigit == tenthDigit)
returnValue = 1;最后是计算返回值的逻辑。在本例中是1,因为checkDigit和tenthDigit都是7。
在这里,您可以找到完整的工作代码和结果。
https://stackoverflow.com/questions/25743582
复制相似问题