小编jyo*_*esh的帖子

如何避免快速模幂运算中的溢出

我正在尝试解决一个关于 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因为溢出而给出答案。如何避免溢出?

c integer-overflow c99

5
推荐指数
1
解决办法
1876
查看次数

只要在textarea中输入,就用Devanagari Danda(".")替换垂直条("|")

我想在使用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)

javascript javascript-events

5
推荐指数
1
解决办法
446
查看次数

标签 统计

c ×1

c99 ×1

integer-overflow ×1

javascript ×1

javascript-events ×1