Реализовать алгоритм, вычисляющий 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), то выводится сообщение об ошибке и цикл прерывается. Список действий:
- Подключение необходимых заголовочных файлов.
- Объявление функции diabolical, которая будет вычислять следующий член последовательности.
- Ввод первого числа с помощью функции fgets и преобразование его в целое число с помощью функции atoi.
- Цикл, который будет выполняться до тех пор, пока текущий член последовательности больше 1.
- Проверка на то, что текущий член последовательности не превышает максимально допустимое значение.
- Если текущий член последовательности превышает максимально допустимое значение, то выводится сообщение об ошибке и цикл прерывается.
- Вызов функции diabolical для вычисления следующего члена последовательности.
- Вывод текущего члена последовательности с помощью функции printf.
- Выход из программы.