Есть 4 друга A, B, C, D, каждый из которых имеет определенную сумму денег, которую они делят между собой каждый день, пока их нельзя разделить поровну, например, у A есть 15 $, у него 5,5,5 для B C, D аналогично B = 9 $ делит 3 $, 3 $, 3 $ на другие три, и C с 21 $ и D с 12 $ делает то же самое, поэтому теперь у A 14, B имеет 16 и C имеет 12, а D - 15. На следующий день они снова поделятся обновленными деньгами таким же образом. Я должен считать дни, пока они не смогут делиться одинаково, введите описание изображения здесь и, если сумма может быть разделена навсегда, верните -1. Например: когда все 4 имеет 3 $. Однако я не смог пройти все контрольные примеры из-за ошибки времени выполнения и исключения stackoverflow. Мой код:
Программа класса {
public int Friends(int a,int b, int c, int d, int count)
{
int m = b/3 + c/3 + d/3;
int n = c/3 + d/3 + a/3;
int o = d/3 + a/3 + b/3;
int p = a/3 + b/3 + c/3;
a=m;
b=n;
c=o;
d=p;
count +=1;
count = Friends(a,b,c,d,count);
return count;
}
static void Main(){
int count =0;
Program p = new Program();
int a = p.Friends(3,3,3,3, count);
System.Console.WriteLine(a);
}
}