4 c#
在c#中如何将100均分为7?
结果就是这样
以下代码不正确,因为所有7个值都设置为15(总计105).
double [] vals = new double[7];
for (int i = 0; i < vals.Length; i++)
{
vals[i] = Math.Ceiling(100d / vals.Length);
}
Run Code Online (Sandbox Code Playgroud)
在c#中有一个简单的方法吗?
谢谢
Jon*_*eet 22
为了得到我建议的15,15,14,14,14,14,14的结果:
// This doesn't try to cope with negative numbers :)
public static IEnumerable<int> DivideEvenly(int numerator, int denominator)
{
int rem;
int div = Math.DivRem(numerator, denominator, out rem);
for (int i=0; i < denominator; i++)
{
yield return i < rem ? div+1 : div;
}
}
Test:
foreach (int i in DivideEvenly(100, 7))
{
Console.WriteLine(i);
}
Run Code Online (Sandbox Code Playgroud)
干得好:
Func<int, int, IEnumerable<int>> f = (a, b) =>
Enumerable.Range(0,a/b).Select((n) => a / b + ((a % b) <= n ? 0 : 1))
Run Code Online (Sandbox Code Playgroud)
祝你好运在课堂上讲解:)