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
41
int
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
}
main
int main(void)
Definition
Ejemplo_035.c:15
src
20261
src
Ejemplo007.c
Generated by
1.16.1