C++: Посчитать значение последовательности

Нужно посчитать значение последовательности 1/2^0+1/2^1+1/2^2+…1/2^N

Делается в простом цикле со счетчиком. N вводится пользователем с клавиатуры.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main() 
{
    int N;
    printf("Vvedite chislo N:\n");
    scanf("%d", &N);
 
    float result = 0;
    int denominator = 1;
    for (int i=0; i<=N; i++) 
    {
        result += (float) 1/denominator;
        denominator *= 2;
    }
 
    printf("Resultat raven %g\n", result);
    return 0;
}
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() 
{
    int N;
    printf("Vvedite chislo N:\n");
    scanf("%d", &N);

    float result = 0;
    int denominator = 1;
    for (int i=0; i<=N; i++) 
    {
        result += (float) 1/denominator;
        denominator *= 2;
    }

    printf("Resultat raven %g\n", result);
    return 0;
}

То, на что делится на каждом шаге (итерации) увеличивается в 2 раза — умножаем.  result += (float) 1/denominator; — Здесь нужно приведение типа, так как если делить целое на целое он запишет целое округлив, а это нас не устраивает и мы явно ему говорим об этом.

 

Добавить комментарий