Форум программистов, компьютерный форум CyberForum.ru

Функция, которая для заданного целого числа m находит среди первых m^2-1 чисел Фибоначчи хотя бы одно, делящееся на m (перевести на Си) - C++

Восстановить пароль Регистрация
 
Shonny
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 41
28.11.2012, 18:32     Функция, которая для заданного целого числа m находит среди первых m^2-1 чисел Фибоначчи хотя бы одно, делящееся на m (перевести на Си) #1
Условие: Напишите функцию, которая для заданного целого числа m находит среди первых m2-1 чисел Фибоначчи хотя бы одно, делящееся на m
мне бы её в си
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
#include <stdafx.h>
#include <iostream>
#include <climits>
#include <cstdlib>
using namespace std;
 
typedef unsigned long long ull;
 
// функция возвращает n-е число Фибоначчи
// или 0, если n-e число больше чем ULLONG_MAX
ull fib_n( ull n ) {
    if ( n <= 2 )
        return 1;
    ull x = 1; //F(n-2)
    ull y = 1; //F(n-1)
    ull ans = 0; //F(n)
 
    for ( ull i = 3; i <= n; ++i ) {
        if ( ( x + y ) < ans ) // на случай переполнения
            return 0;
 
        ans = x + y;
        x = y;
        y = ans;
    }
    return ans;
}
 
int main() {
 
    ull m, value = 0, number = 1;
    cout << "Vvedite m" << endl;
    cin >> m;
 
    while ( true ) {
        if ( ( value = fib_n( number ) ) % m == 0 || value == 0 )
            break;
        ++number;
    }
 
    if ( value == 0 )
        cout << "Not possible to find such number of Fibonachchi which totally shares on " << m << " krome 0" << endl;
    else
        cout << "Nacelo delitca " << m << " chislo Fibonachchi  " << value << ", kotoroe imeet nomer" << number << endl;
    return 0;
system("PAUSE");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2012, 18:32     Функция, которая для заданного целого числа m находит среди первых m^2-1 чисел Фибоначчи хотя бы одно, делящееся на m (перевести на Си)
Посмотрите здесь:

C++ Выяснить, имеется ли среди чисел последовательности хотя бы одно число Фибоначчи
C++ найти среди первых чисел Фибоначчи хотя бы одно, делящееся на m
C++ Найти среди первых чисел Фибоначчи хотя бы одно, делящееся на m
C++ Заданы целые числа a1, a2,…, an. Написать программу, которая находит сумму четных чисел среди чисел a1, a2,…, an
C++ Разработать функцию, которая для заданного натурального числа находит корень
Разработать функцию f(n), которая для заданного натурального числа п находит значение корень 4n + n C++
Написать программу для вывода на экран чисел Фибоначчи, меньших заданного числа Q C++
C++ Определить, имеется ли среди целых чисел a, b и c хотя бы одно чётное

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
28.11.2012, 19:59     Функция, которая для заданного целого числа m находит среди первых m^2-1 чисел Фибоначчи хотя бы одно, делящееся на m (перевести на Си) #2
Качество кода не смотрел
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
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
 
typedef unsigned long long ull;
 
// функция возвращает n-е число Фибоначчи
// или 0, если n-e число больше чем ULLONG_MAX
ull fib_n( ull n ) {
    if ( n <= 2 )
        return 1;
    ull x = 1; //F(n-2)
    ull y = 1; //F(n-1)
    ull ans = 0; //F(n)
    ull i;
    for ( i = 3; i <= n; ++i ) {
        if ( ( x + y ) < ans ) // на случай переполнения
            return 0;
 
        ans = x + y;
        x = y;
        y = ans;
    }
    return ans;
}
 
int main(void) {
 
    ull m, value = 0, number = 1;
    printf("Vvedite m\n");
    scanf("%llu", &m);
 
    while (1) {
        if ( ( value = fib_n( number ) ) % m == 0 || value == 0 )
            break;
        ++number;
    }
 
    if ( value == 0 )
        printf("Not possible to find such number of Fibonachchi which totally shares on %llu krome 0\n", m);
    else
        printf("Nacelo delitca %llu chislo Fibonachchi  %llu, kotoroe imeet nomer%llu\n", m, value, number);
    system("PAUSE");
    return 0;
}
Yandex
Объявления
28.11.2012, 19:59     Функция, которая для заданного целого числа m находит среди первых m^2-1 чисел Фибоначчи хотя бы одно, делящееся на m (перевести на Си)
Ответ Создать тему
Опции темы

Текущее время: 07:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru