我正在尝试解决一个关于 SPOJ 的问题,它需要模幂运算。我正在使用以下 C 代码
long long modpow(long long a,long long b,long long mod)
{
long long product,pseq;
product=1
pseq=a%mod;
while(b>0)
{
if(b&1)
product=(product*pseq)%mod;
pseq=(pseq*pseq)%mod;
b>>=1
}
return product;
}
Run Code Online (Sandbox Code Playgroud)
问题是当我想计算时(2^249999999997)%999999999989,它会0因为溢出而给出答案。如何避免溢出?
我想在使用javascript在textarea中键入时,用Devanagari Danda(.)替换Vertical Bar(|).
首先,我尝试了如何更改Firefox中键入的字符的解决方案.但它只是将角色添加到最后.
所以,我按照http://www.jsfiddle.net/EXH2k/6/上给出的解决方案,这是Tim Down关于更改按键的建议,并且还显示了谷歌浏览器中键入的键盘字符.但它对我不起作用(在Firefox和IE 10中都没有).
码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="stylesheet.css" />
<script type="text/javascript">
function transformTypedChar(charStr) {
return charStr == "|" ? "?" : charStr;
}
function getInputSelection(el) {
var start = 0, end = 0, normalizedValue, range,
textInputRange, len, endRange;
if (typeof el.selectionStart == "number" && typeof el.selectionEnd == "number") {
start = el.selectionStart;
end = el.selectionEnd;
} else {
range = …Run Code Online (Sandbox Code Playgroud)