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

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

算是一道算法題

算是一道算法題

呼喚遠方 2018-08-13 11:14:00
碰到這樣一個問題。給定一組數組作為基數,然后給一個數字,求出所有以數組值為基數的數量和為給出數字值的組合。舉例簡單說明吧:假定一個簡單的數組arr[3]={2,3,6},然后給出數字8的組合有三種:(2->4); (6->1)(2->1); (3->2)(2->1)給出數字9的組合也有三種:(3->3); (6->1)(3->1); (2->3)(3->1)PS:本人用C#寫了個三重循環加遞歸,感覺有點復雜了,希望有高手幫忙分析下有沒有什么簡單的算法或者數據結構的解決思路。題目本身也不算難吧,但自己實際寫寫也花了點時間,所以想提出問題,請各位高手幫忙分析分析,謝謝。除了蠻力遍歷沒有什么高端的算法么?
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

可不可以這樣子一下,
你有一個基數數組,一個給定的數字。
可以確定一個最大可能的基數的系數,也就是給定的數字除以基數數組里的每一個數,得到的最大的那個數就是可能的最大的系數。
然后你可以造一個(最大系數+1)進制類,這個仿照10進制建個類應該可以做到
然后進行一次遍歷,范圍是從0到(最大系數+1)進制的數組長度位的最大值
然后對數組的第1,2。。。個元素分別乘以循環的數的第1,2。。。位上的數,查看相加的結果是不是等于給定的數字,
等于的話則說明這組數字是可用的。這樣建一個類,一次循環就可以了。

查看完整回答
反對 回復 2018-08-27
  • 1 回答
  • 0 關注
  • 907 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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