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

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

代碼僅適用于 2 步,輸出在 2 步后開始偏離

代碼僅適用于 2 步,輸出在 2 步后開始偏離

富國滬深 2022-06-30 11:18:59
我編寫了一個(gè)程序來檢查國王可以在 K 步中移動的位置數(shù)。我有一個(gè)大小為 8×8 的棋盤,行和列從 1 到 8 標(biāo)記。假設(shè)我們的國王在位置 1,3;他可以移動到 5 個(gè)新位置,并且可能會保持在當(dāng)前位置,因此我們的國王總體上可以移動到 6 個(gè)位置。我們的國王可以移動的新位置的有效性可以通過公式來檢查Square(r'-r)+Square(c'-c)<=2wherer'和c'are 要檢查的單元格的位置。我的代碼適用于 K=1 和 2,但結(jié)果開始偏離 3 個(gè)或更多 K 值。import java.util.Scanner;class Chess {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        int testCases;        testCases = input.nextInt();        while (testCases-- > 0 && testCases <= 512) {            int R, C, K, count = 0;            R = input.nextInt();            C = input.nextInt();            K = input.nextInt();            if (R >= 1 && R <= 8 && C <= 8 && C >= 1 && K <= 8 && K >= 1) {                for (double rowIndex = 1; rowIndex <= 8; rowIndex++) {                    for (double columnIndex = 1; columnIndex <= 8; columnIndex++) {                        if (Math.pow((rowIndex - R), 2) + Math.pow((columnIndex - C), 2) <= (2 * Math.pow(K, 2))) {                            count++;                        }                    }                }            }            System.out.println(count);        }    }}
查看完整描述

2 回答

?
慕的地10843

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

我不是 100% 確定,但你知道從技術(shù)上講,你從 1 開始 R、C 和 K,而 count 保持在 0,對嗎?這是因?yàn)槟谑褂盟鼈冎耙苿拥较乱粋€(gè) int。


我會將代碼調(diào)整如下,看看是否會產(chǎn)生更好的結(jié)果!


import java.util.Scanner;


class Chess {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        int testCases;

        testCases = input.nextInt();

        while (testCases-- > 0 && testCases <= 512) {

            int R, C, K, count = 0;

            if (R >= 1 && R <= 8 && C <= 8 && C >= 1 && K <= 8 && K >= 1) {

                for (double rowIndex = 1; rowIndex <= 8; rowIndex++) {

                    for (double columnIndex = 1; columnIndex <= 8; columnIndex++) {

                        if (Math.pow((rowIndex - R), 2) + Math.pow((columnIndex - C), 2) <= (2 * Math.pow(K, 2))) {

                            count++;

                        }

                    }

                }

            R = input.nextInt();

            C = input.nextInt();

            K = input.nextInt();

            }

            System.out.println(count);

        }

    }

}


查看完整回答
反對 回復(fù) 2022-06-30
?
翻閱古今

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

您檢查新正方形有效性的公式不正確;它不應(yīng)該涉及平方。如您所見,對于K = 3,您的條件變?yōu)?/p>

(r' - r)2 + (c' - c)2 ≤ 2 × 32 = 18

,事實(shí)上,可以通過滿足r' = r + 4c' = c,因?yàn)?16 ≤ 18。但這意味著國王向上移動了四個(gè)方格!

相反,您可以在每個(gè)方向上重申您的狀況:

  • 國王可以上k臺階,但不能超過第 8,所以國王可以到達(dá)的最上排是rmax = min(r + k, 8);

  • 同樣,rmin = max(r - k, 1);

  • 同樣,cmax = min(c + k, 8);

  • 同樣,cmin = max(c - k, 1)。

然后,您可以簡單地將答案計(jì)算為(rmax - rmin + 1) × (cmax - cmin + 1)。這在直覺上是有意義的,因?yàn)橛行^(qū)域應(yīng)該是一個(gè)跨越行rminrmax和列cmin到的矩形cmax。


查看完整回答
反對 回復(fù) 2022-06-30
  • 2 回答
  • 0 關(guān)注
  • 98 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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