回 帖 发 新 帖 刷新版面

主题:我这两个函数怎么功能不一样啊

    public long colum(long y,long n,long key)
    {
        long mul;
        if(key==1)
            mul=y;
        else 
            mul=(y*this.colum(y,n,key-1))%n;
        return mul;
    }

    
    public long wolum(long y,long n,long key)
    {
        long mul=y;
        long i;
        for(i=0;i<key;i++)
        {
            mul *=y;
        }
        return mul%n;
    }
    
    
    这两个函数我想实现的是y的key次方再对n 取余,运行下来只有上面那个能实现我想要的,我想问问下面这个怎么不行?

回复列表 (共3个回复)

沙发

public long wolum(long y,long n,long key)
{
        long mul=1;  //mul应该赋初始值为1
        long i;
        for(i=0;i<key;i++)
        {
            mul *=y;
        }
        return mul%n;
}

板凳

[quote]public long wolum(long y,long n,long key)
{
        long mul=1;  //mul应该赋初始值为1
        long i;
        for(i=0;i<key;i++)
        {
            mul *=y;
        }
        return mul%n;
}[/quote]
    嗯,局部变量,未初始化,不能直接使用

3 楼


但是我就算改为mul=1,也不能得到正确答案呀? 高手帮忙啊[em4]

我来回复

您尚未登录,请登录后再回复。点此登录或注册