EspañolDeutschFrançaisItalianoPortuguêsРусскийΕλληνικά日本語中文(简体)हिन्दी; हिंदीالعربية
设置为默认语言
PF 问题 - 论坛

如何添加使用 Java 中的递归数字

Estoy estudiando recursividad y pensé en hacer algún ejemplo. Os muestro el código con el que intento sumar los números del 1 到 5, cuyo resultado sería 15, pero me devuelve 16.

¿Qué puedo estar haciendo mal?

static void Main (string[] args) {
   Console.WriteLine(Sum(5));
   Console.Read();
}

static int Sum (int value) {
   if (value > 0) {
      return value + Sum(value-1);
   }
   else {
      return 1;
   }
}

 

jesus_coam preguntó 我们的一日三餐 8 几个月
1 答案

Una función recursiva es una función en cuyo código se llama a sí misma. En su código puede encontrarse el caso recursivo, que es donde la función realiza la llamada a sí misma, 和 caso base, donde no realiza ese tipo de llamadas.

Por lo que puedo ver en tu código, 的 caso recursivo es cuando value es mayor que 0,caso base es cuando value vale 0. Pero estás devolviendo 1, cuando value vale 0, cosa que no es correcta.

Lo correcto sería que el 返回 的的 caso base fuese 0.

约书亚 说的得 8 几个月
分享它 Share on FacebookTweet about this on TwitterShare on Google+Pin on PinterestShare on RedditShare on VKShare on StumbleUponShare on TumblrShare on LinkedInEmail this to someonePrint this page