간단한 수학 문제를 풀고 있는데 몇 가지 문제가 있습니다. 재귀 함수를 작성했지만 계산기와 같은 결과를 얻지 못합니다. 예를 들어, n = 2, a = 2. 아무도 나를 도울 수 있습니까?재귀 수학 표현식을 풀 수 없습니다.
작업 :
1/a + 1/(a+1) +...+ 1/(a(a+1)...(a+n))
여기 내 코드는 지금까지의 :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _02__Part_A_
{
class Program
{
float res = 1;
public float func3(int n, int a)
{
if (n == 0)
return 1/(a * res);
res = res * (a + n);
n--;
return func3(n, a);
}
static void Main(string[] args)
{
Program a = new Program();
float resOFfunc3 = (float)0.5;
string n = Console.ReadLine();
string ak = Console.ReadLine();
for (int nn = int.Parse(n); nn > 0; nn--)
{
resOFfunc3 += a.func3(nn, int.Parse(ak));
}
Console.WriteLine(resOFfunc3.ToString());
}
}
}
'1/a + 1/a (a + 1) + ... + 1/(a + 1) ... (a + n))'이 아니어야합니까? 함수의 두 번째 부분을 살펴보십시오. – MarcinJuraszek
당신의 네임 스페이스가 주어진다면 숙제라고 가정합니다 ... –
float res = 1; 이것은 a.func3를 호출하기 전에 for 루프 내에서 재설정해야합니다. – Dampsquid