1. Условие
Дано натуральное число n. Получить последовательность b1, b2, … bn:
bi = 1 + 1/2 + ... + 1/i,
где i=1, 2, …, n.
2. Решение
Задаем размер массива n. Выделяем блок оперативной памяти под n чисел. В цикле производим инициализацию массива по формуле b[i] = b[i-1] + 1.0/(float)i. Элементы массива выводим на экран.
3. Алгоритм решения
4. Текст программы
1 : #include <stdio.h> 2 : #include <alloc.h> 3 : #include <conio.h> 4 : void main() 5 : { 6 : int i, n; 7 : float *b; 8 : clrscr( ); 9 : printf( "\n\t\t Введите количество элементов n = " ); 10: scanf( "%d", &n ); 11: b=( float * )malloc( n*sizeof(float) ); 12: printf( "\n \t \t \t Для b[i] = 1 + 1/2+...+1/i:" ); 13: printf( "\n \t \t \tсформированная последовательность \n" ); 14: b[0]=1; 15: for(i=1; i<n; i++) 16: { 17: b[i]= b[i-1] + 1.0/(float)i; 18: printf( "\n \t \t \t \t b[%d]=%lf ",i, b[i] ); 19: } 20: for(i=0; i<n; i++) 21: { 22: printf( "\n \t \t \t \t b[%d]=%lf ",i, b[i] ); 23: } 24: printf( "\n \n \n \t \t \t Для выхода нажмите любую клавишу." ); 25: getch(); 26: free(b); 27: }
5. Работа программы
Введите количество элементов n=3 Для b[i]=l+l/2+...+l/i: сформированная последовательность: b[0]=1.000000 b[1]=1.500000 b[2]=1.833333 Для выхода нажмите любую клавишу.
6. Проверка
Произведем вычисления:
b[0]=1;
b[1]=1+1/2, то есть b[1]=1,5;
b[2]=1+1/2+1/3, то есть b[2]=1,833333 .
Таким образом, программа работает верно.