在c#中如何将100均分为7?
结果就是这样
16
14
14
14
14
14
14
以下代码不正确,因为所有7个值都设置为15(总计105).
double [] vals = new double[7]; for (int i = 0; i < vals.Length; i++) { vals[i] = Math.Ceiling(100d / vals.Length); }
在c#中有一个简单的方法吗?
谢谢
为了得到我建议的15,15,14,14,14,14,14的结果:
// This doesn't try to cope with negative numbers :) public static IEnumerableDivideEvenly(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); }
干得好:
Func> f = (a, b) => Enumerable.Range(0,a/b).Select((n) => a / b + ((a % b) <= n ? 0 : 1))
祝你好运在课堂上讲解:)
由于这似乎是家庭作业,这里有一个提示,而不是完整的代码.
您正在进行Math.Ceiling并将14.28转换为15.