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

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

為什么方法在每個數組中返回多個值而不是一個?

為什么方法在每個數組中返回多個值而不是一個?

慕神8447489 2022-06-04 10:56:46
我在 Java 中返回類型時遇到問題。該程序是關于將 5 個 chiffres 的整數分解為一個數組,而不使用預定義的方法,只使用經典算法以遞歸方式。我編寫了代碼,它與遞歸配合得很好,但是當我從方法中捕獲新數組時,它在每種情況下都不會返回一個值,而是在一種情況下返回 2 到 5 個 chiffres。我想要實現的是:12345 >> [1][2][3][4][5]但我的算法給了我這個:12345 >> [0][12][123][1234][12345]我想問題出在返回類型或聲明方法中。這是我的代碼:public class recursive {  static int[] Decompose (int[] tab , int pos,int num) //pos for position  {    if (pos == 0) //if it reach the last element of the table it stop    {      return tab;    }     else {      tab[pos]=num;      return Decompose(tab,pos-1,num/10); // if we didn't reach the end continue ...        }  }  public static void main(String[] args) {    int []t = new int[5];    int n=12345;//the number that i want to decompose    int pos=4;//the indicator of table position    t=Decompose(t,pos,n);    for (int i = 0; i < t.length; i++) {        System.out.println(t[i]);    }  }}
查看完整描述

2 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

您每次都將數組分配給實際數字,這就是為什么您在每次迭代中得到整數減一的原因。您應該將選項卡分配更改為:

tab[pos] = num % 10;

該位置也應達到索引 0,因此將檢查更改為:

if (pos < 0)


查看完整回答
反對 回復 2022-06-04
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

看起來您想在數組的每個位置存儲一個數字,因此您應該使用%運算符來獲取最后一個數字:


...

tab[pos]=num%10;

return Decompose(tab,pos-1,num/10);

...


查看完整回答
反對 回復 2022-06-04
  • 2 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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