Как добавить результат факторных значений? - PullRequest
0 голосов
/ 22 января 2010

У меня тут логическая проблема. Я хочу добавить результат факторных значений, но я не уверен, как их добавить. Вот мой код:

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)));
            }
        }
    }
}

Ответы [ 4 ]

1 голос
/ 22 января 2010

Не уверен, что это то, что вы имели в виду, но если для факториала 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 голос
/ 22 января 2010

Вам необходимо добавить итоговую переменную, чтобы отслеживать сумму.

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 голосов
/ 22 января 2010
   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)));
                }
            }
0 голосов
/ 22 января 2010

если не понимать, что именно вы хотите делать, вот две вещи ...

  • в программировании, совершенно верно следующее выражение: i = i + 1 Сказать, что «новое значение i - это старое значение i плюс один»
  • переменные находятся в пределах области видимости, их границы обычно заключаются в фигурные скобки { }, то есть вам понадобится переменная, находящаяся вне фигурных скобок foreach, чтобы «запомнить» материал предыдущей итерации.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...