logic - 如何修复代码的逻辑?我收到运行时错误和 stackoverflow 异常
问题描述
有 4 个朋友 A,B,C,D 每个人都有一些钱,他们每天都在他们之间分享,直到无法平均分享,例如 A 有 15$ ,它与 B,C 分享 5,5,5, 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);
}
}
解决方案
您不应该从同一个类调用函数 main(),否则函数 Friend() 将被递归调用,创建新的 Program 类实例,因此一次又一次地调用 main()。
推荐阅读
- javascript - 如果用户未回答 JavaScript 地理定位小狗,如何继续执行代码?
- sql - 如何在 postgres 存储过程中将数据插入到字符串数组中
- android - 与具有碰撞的 3D BIM 模型交互
- python-3.x - 如何使用python将二叉树表示为数组?
- c++ - C++ 模板未在 Linux GCC 上编译
- r - How to do autofill of data in shiny app using excel file
- java - 使用 imageio 对 PNG 图像进行 Java 图像压缩
- bash - 一次为观察者提供多个“查找” - 只执行第一个
- android - UiSelector text 和 textContains 的区别
- python - 如何将多个表转换为项目的无序列表,其中每个表都是
- ?