HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 23.04.2010, 14:31
saransko_o
Новичок
Регистрация: 01.01.2009
Сообщений: 14
С нами: 9135178

Репутация: 2
По умолчанию

как на языке С можно реализовать вычисления чисел фибоначчи до 5000?
 
Ответить с цитированием

  #2  
Старый 23.04.2010, 15:36
Katya.sx
Новичок
Регистрация: 08.02.2010
Сообщений: 11
С нами: 8554717

Репутация: 2
По умолчанию

Цитата:
Сообщение от saransko_o  
как на языке С можно реализовать вычисления чисел фибоначчи до 5000?
Ряд Фибоначчи хорошо описан в книге "С++ за 21 день".

#include <iostream.h>
int s=0;
int fib (int n);

int main()
{

int n, answer;
cout << "Enter number to find: ";
cin >> n;

cout << "\n\n";

answer = fib(n);

cout << answer << " is the " << n << "th Fibonacci number\n";
cout << "\n" <<s <<"\n";
return 0;
}

int fib (int n)
{
cout << "Processing fib(" << n << ")... ";
s++;
if (n < 3 )
{
cout << "Return 1!\n";
return (1);
}
else
{
cout << "Call fib(" << n-2 << ") and fib(" << n-1 << ").\n";
return (fib(n-2) + fib (n-1));
}
 
Ответить с цитированием

  #3  
Старый 24.04.2010, 23:28
Ins3t
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
С нами: 8850336

Репутация: 330
По умолчанию

Цитата:
Сообщение от Katya.sx  
Ряд Фибоначчи хорошо описан в книге "С++ за 21 день".

#include <iostream.h>
int s=0;
int fib (int n);

int main()
{

int n, answer;
cout << "Enter number to find: ";
cin >> n;

cout << "\n\n";

answer = fib(n);

cout << answer << " is the " << n << "th Fibonacci number\n";
cout << "\n" <<s <<"\n";
return 0;
}

int fib (int n)
{
cout << "Processing fib(" << n << ")... ";
s++;
if (n < 3 )
{
cout << "Return 1!\n";
return (1);
}
else
{
cout << "Call fib(" << n-2 << ") and fib(" << n-1 << ").\n";
return (fib(n-2) + fib (n-1));
}
Все очень рады, что вы читали о рекурсии в книге "С++ за 21 день", но ваш, а точнее, пример автора этой книги не сосчитает ряд чисел Фибоначчи до 5000.

2saransko_o, поищите в гугле по запросу "Длинная арифметика".
 
Ответить с цитированием

  #4  
Старый 25.04.2010, 11:18
Ss[x]dD
Познающий
Регистрация: 07.06.2009
Сообщений: 30
С нами: 8909709

Репутация: 0
По умолчанию

Рисуем график в Chart - Delphi.

Вот у меня такой примерчик: нужно построить график, используя значения x, y - из СтрингГрида. График у меня построился, но теперь мне нужно, чтобы ось ОХ как бы была выделенной, а она у меня ничем не выделяется.

И еще 1 вопрос: в Chart`е есть такая функция, чтобы график рисовался не весь сразу, а с неким интервалом, допустим 1 точка за 1 сек?

Вот код:

procedure TForm1.Button2Click(Sender: TObject);
var i,j:longint;
begin
Series1.Clear;
for i:=1 to StringGrid1.RowCount-1 do
Series1.AddXY(StrToFloat(StringGrid1.Cells[0,i]),
StrToFloat(StringGrid1.Cells[1,i]),
'',clGreen);
Chart1.Title.Text.Clear;
end;


procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked=true then Series1.Pointer.Visible:=true
else Series1.Pointer.Visible:=false;
end;
 
Ответить с цитированием

  #5  
Старый 23.04.2010, 18:20
saransko_o
Новичок
Регистрация: 01.01.2009
Сообщений: 14
С нами: 9135178

Репутация: 2
По умолчанию

да я не знаю c++, мне именно на C надо..
 
Ответить с цитированием

  #6  
Старый 24.04.2010, 19:25
Idainet
Новичок
Регистрация: 21.08.2008
Сообщений: 7
С нами: 9326708

Репутация: 9
По умолчанию

Цитата:
как на языке С можно реализовать вычисления чисел фибоначчи до 5000?
Код:
# include <stdio.h>

int main(){

	int M[500] = {1,1};
	int i;

	for (i = 0; M[i] < 5001; ++i)
	{
		printf ("%d - %d\n", i+1, M[i]);
		M[i+2] = M[i+1] + M[i];
	}

	return 0;
}

Последний раз редактировалось Idainet; 24.04.2010 в 19:29..
 
Ответить с цитированием

  #7  
Старый 24.04.2010, 19:42
gisTy
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
С нами: 9454841

Репутация: 504


По умолчанию

Цитата:
как на языке С можно реализовать вычисления чисел фибоначчи до 5000?
как-то так, только тут первые 80, потому что дальше у меня нехорошо получется
Код:
#include<stdio.h>

int main()
{
	double a = 1.0, b = 1.0, i;

	printf("%.0f\n%.0f\n", a, b);
	for(i = 0; i< 40; i++)
	{
		printf("%.0f\n", a+b);
		a+=b;
		printf("%.0f\n", a+b);
		b+=a;
	}
	return 0;
}

Последний раз редактировалось gisTy; 24.04.2010 в 19:49..
 
Ответить с цитированием

  #8  
Старый 25.04.2010, 16:27
DJeFRY_RASH
Новичок
Регистрация: 07.04.2009
Сообщений: 19
С нами: 8997603

Репутация: 3
По умолчанию

Народ, помогите в Delphi на канве нарисовать относительно вертикальной оси, n - угольную призму !
Заранее спасибо !
 
Ответить с цитированием

  #9  
Старый 25.04.2010, 22:03
Ditol
Новичок
Регистрация: 03.03.2010
Сообщений: 1
С нами: 8521738

Репутация: 0
По умолчанию

выручите плиз)) в четеверг лаба будет, делаю дома заранее, чтобы долгов небыло и чтобы во всем самому разбираться... но тут пропустил пару занятий по уважительной причине и не особо понял матерьял по указателям в СИ, поэтому прошу помощи.

вобщем, лаба про функции и про указатели.

задание такое:
Цитата:
написать программу сортировки массива строк, ввод данных сортировку и вывод результатво оформить в виде функциий.
использовать указатели.
вариант ** : расположить строки по возрастанию количества цифр в строках.
то что я написал <помощь и состоит в том чтобы исправить этот бред до рабочего состояния>



Код:
#include <stdio.h>
#pragma hdrstop
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#pragma argsused

int in (char *str, int i)
	{
	printf ("\n Enter %d string", i);
	gets(str);
	return (str);
	}
void out (char *str)
	{
	printf ("\n String %s", str);
	}
void main ()
	{
	 char *s[10], *p;
	 int i, j, k[10], m=0, str[10], l;
	 for(i=0; i<10; i++)
		{
		s[i]=(char *) malloc (80);
		str[i]=in(s[i], i);
		}
/*
k - массив в котором будут собранны количества цифр в строке, т.е. к[6]=5 значит что в строке нумбер шесть встречалось 5 цифр. идея в том чтобы потом при помощи этого массива переменять указатели s[i] в соответствии масиву К НЕ трогая сами строки. 
*/ 
	 for(i=0; j<10; i++)
	 {
	 k[i]=0;
	 }
	 for (i = 0; i <= 9; i++)
		{
		 l=strlen(str);
		 for(j=0; j<l; j++)
		 {
			if(str[i][j]>='0' && str[i][j]<='9')
			{
			k[i]=k[i]+1;
			}
		 }
		}
	 for (i = 9; i>0; --i)
		{
		 for( j=0; j<10; j++)
		 {
			if (k[j]>k[j+1])
			{
				m=s[i];
				s[i]=s[j];
				s[j]=m ;
			}
		 }
		}
	 printf("\n Sort. mass");
	 for (i=0; i<10; i++)
	 {
	  out(s[i]);
	  free(s[i]);
	 }
	 getch();
	}
 
Ответить с цитированием

  #10  
Старый 26.04.2010, 21:27
dark-klin
Участник форума
Регистрация: 10.08.2009
Сообщений: 107
С нами: 8816828

Репутация: 10
По умолчанию

Всем доброго дня и снова задача на Pascal ABC:



Задание содержит задачи, которые сводятся к нахождению суммы или произведения некоторого количества слагаемых

Вычислить приближенное значение бесконечной суммы с заданной степенью точности E=0.1, 0.2, 0.01, 0.001 для получения суммы членов ряда следует использовать реккурентную формулу для получения следующего члена ряда через предыдущий. Считать, что заданная степень точности достигнута, если общий член ряда по модулю станет меньше Е.

Задачу решить в двух вариантах, а именно с использованием оператора цикла с предусловием (while) и оператора с постусловием (repeat).
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.