Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [VB6] Числа Фибоначчи


Автор: edzie 7.6.2009, 23:09
Здравствуйте ) помогите решить задачу в Visual Basic 6.0
Задача:
Дана упорядоченная последовательность натуральных чисел b произвольной длины. Найти, входит ли в эту последовательность i-е. число Фибоначчи. Числа Фибоначчи определяются по формуле: a0=1; a1=1; an=an-1+an-2.
мб чемнибудь поможет эта же задача на Си :
Код

/* MAIN */
#include <conio.h>
#include <stdio.h>
#define SIZE 100
void main(void){ 
    short b[SIZE],
        i,
        razmer,
        nomfib,
        Сheck(short[],short,short);
    clrscr();
    printf("Размер числа последовательности: ");    scanf("%d",&razmer);
    if (razmer<0 && razmer>SIZE){
        printf("Размер должен быть больше 0 и меньше %d", SIZE); 
        getch();
        return;
    }
    printf("Числовая последовательность:\n");
    for (i=0; i<razmer; i++){
        scanf("%d", &b[i]);
    }
    printf("Номер числа Фибаначи: ");
    scanf("%d",&nomfib);
    printf("\n\n%d число Фибаначи ",nomfib);
    if (Сheck(b,razmer,nomfib)){
        printf("входит в числовую последовательность");
    }else{
        printf("не входит в числовую последовательность");
    }
    printf("\n\nНажмите любую клавишу");
    getch();
}
/* CHECK */
#include <stdio.h>
#include <conio.h>
enum bool{FALSE,TRUE};

short Сheck(short b[],short razmer,short nomfib){
    short i, a1, a2, a3;
    enum bool fl=FALSE;
    a1=a2=1;
    for (i=3; i<=nomfib; i++){
        a3=a2+a1;
        a1=a3;
    }
    for (i=0; i<razmer && !fl; i++){
        if (b[i]==a3 || b[i]==a1){
            fl=TRUE;
        }
    }
    return fl;
}


За ранее thx.

Автор: Keeper89 8.6.2009, 00:12
edzie, держи:
Код

Public Function Fib(num As Integer) As Integer
    If num <= 1 Then
        Fib = num
    Else
        Fib = Fib(num - 1) + Fib(num - 2)
    End If
End Function

Private Sub Form_Load()
    Dim A() As Integer
    Dim N As Integer
    Dim F As Integer
    ' Ввод чисел
    N = InputBox("Введите число членов в последовательности (N):")
    ReDim A(N)
    For i = 1 To N
        A(i) = InputBox("Введите " & i & " элемент:")
    Next i
    'Ввод номера числа Фибоначчи
    F = Fib(InputBox("Введите номер числа Фибоначчи:"))
    'Поиск
    For i = 1 To N
        If A(i) = F Then
            MsgBox ("Выбранное число Фибоначчи есть в последовательности!")
            Exit Sub
        End If
    Next i
    MsgBox ("Выбранное число Фибоначчи отсутствует в последовательности!")
End Sub

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)