ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
Ejemplo007.c
Go to the documentation of this file.
1
32
33#include <stdio.h>
34
41int main(int argc, char *argv[])
42{
43 (void)argc;
44 (void)argv;
45
46 int n; /* número de entrada */
47 int rn; /* “residuo” que se va reduciendo restando impares */
48 int i; /* contador de impares restados */
49
50 /* Validar que n sea positivo */
51 do {
52 printf("Ingrese el valor de n: ");
53 scanf("%d", &n);
54 } while (n <= 0);
55
56 rn = n;
57 i = 0;
58
59 /*
60 En cada iteración se resta el siguiente impar:
61 1, 3, 5, 7, ... que corresponde a (2*i+1) cuando i inicia en 0.
62 Después de k iteraciones:
63 rn = n - (1+3+...+(2k-1)) = n - k^2
64 */
65 while (rn > 0)
66 {
67 rn -= (2*i + 1); /* resta impar actual */
68 i++; /* incrementa contador */
69 }
70
71 /* Nota: i será sqrt(n) si n es cuadrado perfecto; si no, i = ceil(sqrt(n)) */
72 printf("%d^2 = %d\n", i, n);
73
74 return 0;
75}
int main(void)
Definition Ejemplo_035.c:15