Реализовать алгоритм, вычисляющий N первых членов арифметической прогрессии - C (СИ) (74233)

Узнай цену своей работы

Формулировка задачи:

сделала как бы начало, а вот что дальше делать не пойму
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int main (void)
{
    int i, d, an, a1, N;
        printf("Vvedite d\n");
        scanf_s("%d", &d);
        printf("Vvedite kolichestvo chlenov progressii\n");
        scanf_s("%d", &N);
        printf("Vvedite a1\n");
        scanf_s("%d", &a1);
 
        for (i=0; i<N; i++)
        {
            an=a1+(d*i);
                printf("%d", an);
        }
        system("pause");
        return 0;
}

Решение задачи: «Реализовать алгоритм, вычисляющий N первых членов арифметической прогрессии»

textual
Листинг программы
#include <stdbool.h>
#include <limits.h>
#include <stdio.h>
 
#define MAX_DIABOLICAL (UINT_MAX / 3)
 
unsigned int diabolical(unsigned int p)
{
    if( p & 1 ) p = 3 * p + 1;
    return p / 2;
}
 
int main(int argc, char* argv[])
{
    char buf[10];
    puts("Enter first number for diabolical sequence (up to 999999999):");
    fgets(buf, sizeof(buf), stdin);
 
    unsigned int p = atoi(buf);
 
    while( p > 1 ) {
        if( p > MAX_DIABOLICAL ) {
            puts("ERROR: Next number is too large");
            break;
        }
        p = diabolical(p);
        printf("%d ", p);
    }
 
    return 0;
}

Объяснение кода листинга программы

В этом коде реализуется алгоритм вычисления первых членов арифметической прогрессии, известной как последовательность дьявола. Эта последовательность определяется следующим образом: первые три члена равны 3, 5, 7, а каждый следующий член получается путем умножения предыдущего члена на 3 и прибавления к нему 1. Если очередной член последовательности превышает максимально допустимое значение (обозначенное в коде как MAX_DIABOLICAL), то выводится сообщение об ошибке и цикл прерывается. Список действий:

  1. Подключение необходимых заголовочных файлов.
  2. Объявление функции diabolical, которая будет вычислять следующий член последовательности.
  3. Ввод первого числа с помощью функции fgets и преобразование его в целое число с помощью функции atoi.
  4. Цикл, который будет выполняться до тех пор, пока текущий член последовательности больше 1.
  5. Проверка на то, что текущий член последовательности не превышает максимально допустимое значение.
  6. Если текущий член последовательности превышает максимально допустимое значение, то выводится сообщение об ошибке и цикл прерывается.
  7. Вызов функции diabolical для вычисления следующего члена последовательности.
  8. Вывод текущего члена последовательности с помощью функции printf.
  9. Выход из программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы