Display a linear combination: Difference between revisions
Content added Content deleted
Line 214: | Line 214: | ||
return 0; |
return 0; |
||
}</lang> |
|||
{{out}} |
|||
<pre> [1, 2, 3] -> e(1) + 2*e(2) + 3*e(3) |
|||
[0, 1, 2, 3] -> e(2) + 2*e(3) + 3*e(4) |
|||
[1, 0, 3, 4] -> e(1) + 3*e(3) + 4*e(4) |
|||
[1, 2, 0] -> e(1) + 2*e(2) |
|||
[0, 0, 0] -> 0 |
|||
[0] -> 0 |
|||
[1, 1, 1] -> e(1) + e(2) + e(3) |
|||
[-1, -1, -1] -> -e(1) - e(2) - e(3) |
|||
[-1, -2, 0, -3] -> -e(1) - 2*e(2) - 3*e(4) |
|||
[-1] -> -e(1)</pre> |
|||
=={{header|C#}}== |
|||
{{trans|D}} |
|||
<lang csharp>using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
namespace DisplayLinearCombination { |
|||
class Program { |
|||
static string LinearCombo(List<int> c) { |
|||
StringBuilder sb = new StringBuilder(); |
|||
for (int i = 0; i < c.Count; i++) { |
|||
int n = c[i]; |
|||
if (n < 0) { |
|||
if (sb.Length == 0) { |
|||
sb.Append('-'); |
|||
} else { |
|||
sb.Append(" - "); |
|||
} |
|||
} else if (n > 0) { |
|||
if (sb.Length != 0) { |
|||
sb.Append(" + "); |
|||
} |
|||
} else { |
|||
continue; |
|||
} |
|||
int av = Math.Abs(n); |
|||
if (av != 1) { |
|||
sb.AppendFormat("{0}*", av); |
|||
} |
|||
sb.AppendFormat("e({0})", i + 1); |
|||
} |
|||
if (sb.Length == 0) { |
|||
sb.Append('0'); |
|||
} |
|||
return sb.ToString(); |
|||
} |
|||
static void Main(string[] args) { |
|||
List<List<int>> combos = new List<List<int>>{ |
|||
new List<int> { 1, 2, 3}, |
|||
new List<int> { 0, 1, 2, 3}, |
|||
new List<int> { 1, 0, 3, 4}, |
|||
new List<int> { 1, 2, 0}, |
|||
new List<int> { 0, 0, 0}, |
|||
new List<int> { 0}, |
|||
new List<int> { 1, 1, 1}, |
|||
new List<int> { -1, -1, -1}, |
|||
new List<int> { -1, -2, 0, -3}, |
|||
new List<int> { -1}, |
|||
}; |
|||
foreach (List<int> c in combos) { |
|||
var arr = "[" + string.Join(", ", c) + "]"; |
|||
Console.WriteLine("{0,15} -> {1}", arr, LinearCombo(c)); |
|||
} |
|||
} |
|||
} |
|||
}</lang> |
}</lang> |
||
{{out}} |
{{out}} |