亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

通過二維數組存儲一個數字的質因數

通過二維數組存儲一個數字的質因數

www說 2023-10-13 14:48:33
我正在編寫一種方法來存儲數字的素因數。我被要求使用二維數組來存儲其素因數和因數的數量。public static int[][] getMatrix (long x){        int[][] matrix =new int[10][2];        int count;        for (int i = 2, j = 0; i <=x / 2; i++) {           count=0;           while (x % i == 0) {               x = x/i;               count++;           }           matrix[j][0] = i;           matrix[j][1] = count;           j++;       }       return matrix;   }但此代碼僅將數據存儲到數組的第一行。有人可以幫我糾正它或提供其他想法嗎?如果我使用下面的代碼來輸出結果。for(int row=0;row<b_matrix.length;row++)        {            for(int column=0;column<2;column++)            {                System.out.print(b_matrix[row][column]+" ");            }        }x=9 我得到這個:2 0 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x=6 我得到這個:2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 如:6matrix[0][0]=2  matrix[0][1]=1matrix[1][0]=3  matrix[1][1]=1 //can't store如:9matrix[0][0]=2   matrix[0][1]=0//only output the next row when this equals to 0 matrix[1][0]=3   matrix[1][1]=2
查看完整描述

1 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

你的邏輯是正確的,除了在 for 循環中i應該直到x而不是x/2如下,


for (int i = 2, j = 0; i <= x; i++)

輸出getMatrix(60):


2   2   

3   1   

4   0   

5   1   

0   0   

0   0   

0   0   

0   0   

0   0   

0   0   


查看完整回答
反對 回復 2023-10-13
  • 1 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號