3 回答

TA貢獻1789條經驗 獲得超8個贊
我的方法遵循許多人的思路。為了簡單起見,我使用了 LINQ。
int fullProduct = 1;
List<int> input = new List<int> { 2, 3, 6, 8 };
List<int> result = new List<int>();
input.ForEach(v => { fullProduct *= v; });
input.ForEach(c=>
{
result.Add(fullProduct / c);
});

TA貢獻1828條經驗 獲得超3個贊
使用 Linq 執行此操作的一種方法是使用Aggregate獲取值的總乘積,然后將結果值分配為等于乘積除以當前循環索引處的輸入項:
static void Multiply()
{
int[] input = { 2, 3, 6, 8 };
int[] result = new int[input.Length];
var product = input.Aggregate((i, j) => i * j);
for (int i = 0; i < input.Length; i++)
{
result[i] = product / input[i];
}
Console.WriteLine(string.Join(" ", input));
Console.WriteLine(string.Join(" ", result));
Console.ReadKey();
}
輸出

TA貢獻1770條經驗 獲得超3個贊
class Program
{
static int GetMulResult(int[] input, int ommitingIndex)
{
int result = 1;
for(int i = 0; i < input.Length; i++)
{
if (i == ommitingIndex)
continue;
result *= input[i];
}
return result;
}
static void Main(string[] args)
{
int[] inputArray = { 2, 3, 6, 8 };
int[] result1 = new int[4];
for(int i = 0; i < inputArray.Length; i++)
result1[i] = GetMulResult(inputArray, i);
}
}
PS??峙氯绻悴荒軇摻ㄟ@樣一個簡單的算法,你將無法創建更多可用的算法。你應該為此努力。
- 3 回答
- 0 關注
- 148 瀏覽
添加回答
舉報