diegotoral
3/29/2013 - 2:54 PM

Seja S uma sequência cujos valores iniciais são {1,1,2,4,3,9,4,16,5,...}. Escreva um programa que, dado um número n (lido da entrada padr

Seja S uma sequência cujos valores iniciais são {1,1,2,4,3,9,4,16,5,...}.

Escreva um programa que, dado um número n (lido da entrada padrão), envia para a saída padrão a soma nos n primeiros números da sequência S.

#include <stdio.h>

int s (int x)
{
    if (x == 0)
        return 0;
    else if (x == 1)
        return 1;
    else
        return x * x;
}

int
main (int argc, char *argv[])
{
    int i, n, soma = 0;
    
    scanf("%d", &n);
    
    if (n % 2 == 0)
    {
        for (i = 1; i <= n / 2; i += 1)
        {
            soma += i + (i * i);
        }
    }
    else
    {
        for (i = 1; i <= (n - 1) / 2; i += 1)
        {
            soma += i + (i * i);
        }
        
        soma += (n + 1) / 2;
    }
 
    
    printf("\nSoma: %d\n", soma);
    
    return 0;
}