Попробуйте этот код. Он должен делать то, что вы хотите. Но попытайтесь понять это, конечно, иначе это бесполезно.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
int[] r1 = Split(140, 30);
Print(r1);
int[] r2 = Split(140, 40);
Print(r2);
int[] r3 = Split(75, 40);
Print(r3);
}
public static void Print(int[] arr)
{
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();
}
public static int[] Split(int N, int val)
{
List<int> lst = new List<int>();
int M = N;
int v = 0;
while (M > 0)
{
v = M > val ? val : M;
lst.Add(v);
M -= v;
}
return lst.ToArray();
}
}
}
звучит немного как домашнее задание ... Что вы пробовали до сих пор? Подсказка: вы хотите посмотреть на оператор модуля (%) – JaredPar
Heya Jared, До сих пор я вычислил цикл for: for (int i = 0; i
user1307346
позволяет делать это без десятичных знаков. Вы можете легко рассчитать остаток с ним. Как только остаток известен, вы можете сделать вычитание, чтобы получить значение, которое отлично делится на делитель. Эти 2 значения дают вам все, что вам нужно, чтобы ответить на этот вопрос – JaredPar