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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

僅使用整數(shù)計(jì)算 2^n%k

僅使用整數(shù)計(jì)算 2^n%k

慕姐4208626 2024-01-25 10:45:01
我需要編寫一個(gè)代碼來獲取 2 個(gè)變量 (n,k) 并打印 (2^n)%k 的答案。我只能使用整數(shù),不能使用方法,不能使用數(shù)組,不能使用數(shù)學(xué)。等等。到目前為止我有這個(gè):int n = myScanner.nextInt();      int k = myScanner.nextInt();       int num = 1;    int modulo = 1;    for (int i = 0; i < n; i++) {                num = num * 2;              modulo *= 2%k;    }    modulo = modulo%k;    System.out.println(modulo);問題是 int 本身的范圍,不超過 2^31...但我仍然需要讓它以某種方式工作,任何幫助將非常感激!
查看完整描述

2 回答

?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊

您正在處理模冪。int一種可能的解決方案是通過利用以下優(yōu)勢(shì)來避免大數(shù)相乘,這會(huì)溢出:

給定兩個(gè)整數(shù) a 和 b,以下兩個(gè)方程是等價(jià)的:

c mod m = (a ? b) mod m

c mod m = [(a mod m) ? (b mod m)] mod m

在 Java 中,基于本節(jié)中解釋的算法的簡單解決方案:

int mod(int base, int exponent, int modulus) {

? if (modulus == 1) return 0;

? int c = 1;

? for (int i = 0; i < exponent; i++) {

? ? c = (c * base) % modulus;

? }

? return c;

}


查看完整回答
反對(duì) 回復(fù) 2024-01-25
?
ABOUTYOU

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

如果您的問題是它無法存儲(chǔ)超過 2^31,那是因?yàn)槟枰褂瞄L數(shù)據(jù)類型來存儲(chǔ)該值。long 可以存儲(chǔ)最大值 2^63(有符號(hào))。



查看完整回答
反對(duì) 回復(fù) 2024-01-25
  • 2 回答
  • 0 關(guān)注
  • 222 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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