第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Mod為負(fù)數(shù)正在融化我的大腦

Mod為負(fù)數(shù)正在融化我的大腦

蠱毒傳說 2019-10-05 15:16:13
我正在嘗試修改一個整數(shù)以獲取數(shù)組位置,以便它將循環(huán)。i % arrayLength對于正數(shù),這樣做很好,但對于負(fù)數(shù),一切都會出錯。 4 % 3 == 1 3 % 3 == 0 2 % 3 == 2 1 % 3 == 1 0 % 3 == 0-1 % 3 == -1-2 % 3 == -2-3 % 3 == 0-4 % 3 == -1所以我需要一個實(shí)現(xiàn)int GetArrayIndex(int i, int arrayLength)這樣GetArrayIndex( 4, 3) == 1GetArrayIndex( 3, 3) == 0GetArrayIndex( 2, 3) == 2GetArrayIndex( 1, 3) == 1GetArrayIndex( 0, 3) == 0GetArrayIndex(-1, 3) == 2GetArrayIndex(-2, 3) == 1GetArrayIndex(-3, 3) == 0GetArrayIndex(-4, 3) == 2我以前做過,但是由于某種原因,今天它融化了我的大腦:(
查看完整描述

4 回答

?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個贊

我總是使用自己的mod函數(shù),定義為


int mod(int x, int m) {

    return (x%m + m)%m;

}

當(dāng)然,如果您不愿意兩次調(diào)用模數(shù)運(yùn)算,可以將其寫為


int mod(int x, int m) {

    int r = x%m;

    return r<0 ? r+m : r;

}

或其變體。


它起作用的原因是“ x%m”始終在[-m + 1,m-1]范圍內(nèi)。因此,如果完全為負(fù),則將其添加到m會將其置于正范圍內(nèi),而不會更改其模m值。


查看完整回答
反對 回復(fù) 2019-10-05
?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個贊

請注意,C#和C ++的%運(yùn)算符實(shí)際上不是模數(shù),而是余數(shù)。在您的情況下,所需的取模公式為:


float nfmod(float a,float b)

{

    return a - b * floor(a / b);

}

您必須使用C#(或C ++)重新編碼,但這是獲得模數(shù)而不是余數(shù)的方式。


查看完整回答
反對 回復(fù) 2019-10-05
?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個贊

增加一些理解。


根據(jù)歐幾里得的定義,模結(jié)果必須始終為正。


例如:


 int n = 5;

 int x = -3;


 int mod(int n, int x)

 {

     return ((n%x)+x)%x;

 }

輸出:


 -1


查看完整回答
反對 回復(fù) 2019-10-05
  • 4 回答
  • 0 關(guān)注
  • 820 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號