Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 03.05.2009
Сообщений: 21
1

Задача на рекурсию

24.05.2009, 11:00. Просмотров 705. Ответов 3
Метки нет (Все метки)

Пусть X1=Y1=1, Xi=Xi-1+Yi-1/i*i , Yi=Yi-1+Xi-1/i , i=2,3….
Получить Xn, Yn

Не знаю как вернуть значения Х и У с помощью структуры.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <ctype.h>
#include "locale.h" 
 
double func(int n)
{       static int k=0;
        static double a,b,c,d;
        static double x0=1,x1=0,x2=0,y0=1,y1=0,y2=0;
        static double X,Y;
                
        if(k==n)
{
    k=0;
    a=0,x1=0,x2=0,y1=0,y2=0;
    b=0,c=0,d=0;
    
}
    else
    {   
        if(k==0)
        {
          X=0;
          Y=0;
          a=x0;
          b=y0;
          X=a;
          Y=b;
          k++;  
        }
            else
            {
            if(k==1)
            {
            x1=a+(b/(n*n));
            y1=b+(a/n);
            c=x1;
            d=y1;
            X=c;
            Y=d;
            ++k;
            }
                else
               {  
                x2=c+(d/(k*k));
                y2=d+(c/k);
                 c=x2;
                 d=y2;
                 X=c;Y=d;
                 ++k;
                }
               }  
        func(n);
        
    }
 
    return X,Y; 
}
 
void main()
{   char ch;
setlocale(LC_ALL,"Russian"); 
    int N;
    double X,Y=0;
    
    
        printf("\nВведите число N(в пределах от 1 до 100 ):");
        scanf("%d",&N);
          while((N<1)||(N>100)) 
           {
            printf("Введите N занаво\n");
            scanf("%d", &N);
            }
        X=func(N);
        Y=func(N);
        printf("\nX=%lg", X);
        printf("\nY=%lg", Y);
       getch();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2009, 11:00
Ответы с готовыми решениями:

Задача на рекурсию
Подсчитать выражение с помощью рекурсии:

Задача на рекурсию цикл for (не могу найти ошибку)
Есть формула (ее скрин указан ниже). Эту формулу нужно решить двумя способами: рекурсией и...

Задача на рекурсию
Дано натуральное число n. Выяснить, имеется ли среди чисел n, n+1, ..., 2n близнецы, т.е. простые...

Задача на рекурсию
Нашел одну задачу, она по моему на рекурсию, но не могу реализовать это. Сколько существует...

3
Evg
Эксперт CАвтор FAQ
21098 / 8115 / 628
Регистрация: 30.03.2009
Сообщений: 22,440
Записей в блоге: 30
24.05.2009, 11:47 2
> Не знаю как вернуть значения Х и У с помощью структуры.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct s
{
  double, x, y;
};
 
struct s func (int n)
{
  struct s res;
  ....
  дальше всё как у тебя
  ...
  res.x = X;
  res.y = Y;
  return res;
}
1
0 / 0 / 0
Регистрация: 03.05.2009
Сообщений: 21
24.05.2009, 17:19  [ТС] 3
....
дальше всё как у тебя
...
вот сюда вставлять только функцию func (int n)?и без return X,Y?
и как обратиться к конечным переменным в главной функции?
0
Evg
Эксперт CАвтор FAQ
21098 / 8115 / 628
Регистрация: 30.03.2009
Сообщений: 22,440
Записей в блоге: 30
24.05.2009, 17:35 4
Цитата Сообщение от BiathlonFan Посмотреть сообщение
вот сюда вставлять только функцию func (int n)?и без return X,Y?
Да, все внутренности твоей реализации func без return

Цитата Сообщение от BiathlonFan Посмотреть сообщение
и как обратиться к конечным переменным в главной функции?
В начале main

C
1
struct s str;
Вместо 75 и 76 строк

C
1
2
3
str = func (N);
X = str.x;
Y = str.y;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2009, 17:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Задача на рекурсию
Доброго времени суток. Прошу помощи в решении поставленной задачи Описать функцию Max1 (x),...

Задача на рекурсию
Помогите решить след. задачу: Вот мой вариант, но здесь не сохраняется порядок: void Func()...

Задача на рекурсию
Во время недавних раскопок на Марсе были обнаружены листы бумаги с таинственными символами на них....

Задача на рекурсию
Всем доброго времени суток. Прошу подсказать мне условие задачи на рекурсию(нам дали задание самим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.