Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2014, 16:34   #1
tomas88
Пользователь
 
Регистрация: 14.04.2014
Сообщений: 12
По умолчанию Правильный ли код?

вот задание: Построить и записать алгоритм определения суммы квадратов последовательных целых чисел с использованием рекурсии.
Правильно ли я сделал? Как вывести ответ?

Код:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            public static int RecSumSquare(int x, int n)
        {
            if (n < 0) throw new ArgumentException("n should be greater than zero");
            else return x*x+RecSumSquare(x+1, n - 1);
        }
tomas88 вне форума Ответить с цитированием
Старый 21.05.2014, 17:00   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Нет, потому что у тебя вместо выхода из рекурсии будет брошена ошибка.
Код:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
		public static int RecSumSquare(int n)
        {
			if (n < 0) throw new ArgumentException("n should be greater than zero");
				return n*n+ n==0 ? 0 : RecSumSquare( n - 1);
        }
		
        static void Main(string[] args)
        {
			Console.WriteLine(RecSumSquare(10));
			Console.ReadLine();
		}
	}
}
Как-то так, правда правил окне сообщения, поэтому мог где-нибудь налажать, но смысл должен быть понятен.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 21.05.2014, 17:16   #3
tomas88
Пользователь
 
Регистрация: 14.04.2014
Сообщений: 12
По умолчанию

а как сделать чтобы самому вводить значение n?
tomas88 вне форума Ответить с цитированием
Старый 21.05.2014, 17:55   #4
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Код:
        static void Main(string[] args)
        {
                        int n = int.Parse(Console.ReadLine());
			Console.WriteLine(RecSumSquare(n));
			Console.ReadLine();
		}
	}
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 21.05.2014, 18:22   #5
tomas88
Пользователь
 
Регистрация: 14.04.2014
Сообщений: 12
По умолчанию

то есть вот так?
Код:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        public static int RecSumSquare(int n)
        {
          
            if (n < 0) throw new ArgumentException("n should be greater than zero");
            return n * n + n == 0 ? 0 : RecSumSquare(n - 1);
        }

        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine(RecSumSquare(n));
            Console.ReadLine();
        }
    }
}
tomas88 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу подобрать правильный код Katte Общие вопросы C/C++ 2 08.06.2010 17:34
Код не всегда выдает правильный результат Maxx Microsoft Office Excel 2 18.02.2010 15:59
Правильный ли код? anomals PHP 4 10.02.2010 14:06
Копирование строк. Правильный ли код? LinuxUser Общие вопросы C/C++ 12 06.11.2007 17:33