2010-01-22 6 views
0

여기 논리 문제가 있습니다. 계승 값의 결과를 추가하고 싶지만 추가하는 방법을 모르겠습니다. 내 코드는 다음과 같습니다.계승 값의 결과를 어떻게 추가합니까?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Task_8_Set_III 
{ 
    class Program      
    { 
     static void Main(string[] args) 
     { 
      for (int i = 1; i <= 7; i++) 
      { 
       double c = i/fact(i); 

       Console.WriteLine("Factorial is : " + c); 
       Console.ReadLine(); 
       Console.WriteLine("By Adding.. will give " +); 

      } 
     } 
     static double fact(double value) 
     { 
      if (value ==1) 
      { 
       return 1; 
      } 
      else 
      { 
       return (value * (fact(value - 1))); 
      } 
     } 
    } 
} 
+0

잘 모르겠습니다. 당신은'1/1! + 2/2! + 3/3! + ... + 7/7! '? – stakx

+1

답변이 이미 게시 된 것을 볼 수 있으므로 계승 계산을 위해 복식을 사용하지 말아야한다고 말하고 싶습니다. 큰 계승을 계산하려면 정수 또는 long을 사용하십시오. – Aaron

+0

Task_8_Set_III <- 흥미로운 네임 스페이스. 숙제를 취하거나 집에서 시험을 보니? – Hogan

답변

1

이 당신이 의미하지만 N의 계승을 위해 그 값까지 모두 계승의 합을하려면이 당신이 그것을 어떻게 어떤 경우 확실하지.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Task_8_Set_III 
{ 
    class Program      
    { 
     static void Main(string[] args) 
     { 
      double sum = 0; 
      for (int i = 1; i <= 7; i++) 
      { 
       double c = i/fact(i); 
       sum += c; 
       Console.WriteLine("Factorial is : " + c); 
       Console.ReadLine(); 
       Console.WriteLine("By Adding.. will give " + sum); 

      } 
     } 
     static double fact(double value) 
     { 
      if (value ==1) 
      { 
       return 1; 
      } 
      else 
      { 
       return (value * (fact(value - 1))); 
      } 
     } 
    } 
} 
+1

이것은 계승의 합계를 반환하지 않습니다 ... 이것은 (i/i!)의 합계를 반환합니다 ... 그것이 OP가 원래 의도 한 것이 아니면 ... – Aaron

+0

사실은 그렇지 않습니다. 'Console.WriteLine ("Factorial is :"+ c);'도 잘못되었습니다. – rui

1

합계를 추적하려면 총 변수를 추가해야합니다.

double total = 0; //the total 

for (int i = 1; i <= 7; i++) 
{ 
    double c = i/fact(i); 
    total += c; // build up the value each time 
    Console.WriteLine("Factorial is : " + c); 
    Console.ReadLine(); 
    Console.WriteLine("By Adding.. will give " + total); 

} 
+0

"c = i/fact (i)".......... c가 계승 계산 인 경우, "c = 사실 (i) "? – Aaron

+0

그것이 OP가 가지고 있었던 것이다. .. 나는 단지 그것을 놓고 갈 예정였다. – jjnguy

+0

질문은 .. 나는 (1/1!) + (2/2!) + ... (7/7!) ... – Abid

0

완전히 정확하게, 여기에 수행 할 작업을 이해하는 짧은 두 가지 ... 프로그래밍

  • 의 다음과 같은 표현은 완벽하게 유효 : 나는 새로운 값이 "말하는 i = i + 1 더하기 하나의 이전 값은 "
  • 이고 범위는 보통 중괄호 { }입니다. 즉, 이전 반복의 내용을"기억 "하기 위해 foreach의 중괄호 밖에있는 변수가 필요합니다.
+0

보다 구체적으로, 언급 한 첫 번째 요점은 * 대부분 * 프로그래밍 언어에 유효합니다. 그러나 'i = i + 1'은 함수형 프로그래밍에서는 그렇게 허용되지 않을 수도 있습니다. – stakx

0
static void Main(string[] args) 
      { 
       int sum = 0; 
       for (int i = 1; i <= 7; i++) 
       { 
        int c = fact(i); 
        sum += c; 
        Console.WriteLine("Factorial is : " + c); 
        Console.ReadLine(); 
        Console.WriteLine("By Adding.. will give " + sum); 

       } 
      } 
      static int fact(int value) 
      { 
       if (value ==1) 
       { 
        return 1; 
       } 
       else 
       { 
        return (value * (fact(value - 1))); 
       } 
      } 
관련 문제