Corso di Informatica Generale - Primo modulo IN1

Testi e soluzioni di esercizi

 

Somma di rapporti (bis)

/*
**  sommatoria.c
**
**  Legge in input un numero intero n e due numeri floating
**  point a e b. Stampa in output la sommatoria
**    SUM(k=0,...,n) (a-b)^k / a^(n-k).
**
**  Marco Liverani (liverani@mat.uniroma3.it) - Marzo 2001
*/

#include <stdlib.h>
#include <stdio.h>

/*
 *  potenza con algoritmo iterativo
 */

float potenza(float x, int n) {
  int i;
  float p = 1.0;

  for (i=1; i<=n; i++) {
    p = p*x;
  }
  return(p);
}

/*
 *  funzione principale (main)
 */

int main(void) {
  int n, k;
  float a, b, somma;

  printf("Inserisci n, a, b: ");
  scanf("%d %f %f", &n, &a, &b);
  somma = 0.0;
  for (k=1; k<=n; k++) {
    somma = somma + potenza(a-b, k)/potenza(a, n-k);
  }
  printf("Sommatoria: %f\n", somma);
  return(1);
}

Per informazioni e commenti: liverani@mat.uniroma3.it - Torna alla Home page - Ultima modifica: 18 Marzo 2001