Gli esercizi
Testi e soluzioni di alcuni esercizi
Somma di rapporti (bis)
Legge in input un intero n e due numeri floating point a e b e stampa in output la somma Σk=0,...,n a-bk/an-k
/*
**  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(0);
}