4 preguntas sobre programación en lenguaje C
/**Función de prueba:
*1 Hay una secuencia de fracciones 2/1, 3/2, 5/3, 8/5, 13/8, 21. /13 ...Escribe un programa para encontrar la suma de los primeros 20 términos de esta secuencia.
*2. Escribe un programa para determinar si un número entero positivo mayor o igual a 3 es un número primo.
*3. Escriba un programa para contar el número de letras, caracteres numéricos y otros caracteres en una línea de caracteres de entrada.
*4. Escriba un programa, C=1+1/X^1+1/X^2+1/X^3+……(X>1) hasta un determinado elemento A<=. 0.000001 vez,
*genera el último valor de C.
*Autor: pengs
*
*/
#include
#include < cmath>
usando el espacio de nombres std;
/*Implementar la primera función funcional*/
double mark_calc(int n)
{
doble a(1.0), b(2.0), suma(0),temp;
while (n > 0)
{
sum += b / a;
temp = b; /*Guarde b primero, luego cambie el valor de b y luego asígnelo a*/
b += a;
a = temp;
--n;
}
devolver suma;
}
/*Determina si un número entero es primo; si es así, devuelve verdadero*/
bool isPrime(const int n)
{
int num = n;
int tmp = (int)sqrt(n); /*Solo prueba a sqrt(n)*/
if ( num == 1 || num == 2)
devuelve verdadero;
for (int i = 2;i <= tmp; ++i)
if ( num % i == 0)
return false;
return true;
}
/*Implementar la tercera función Función* /
doble intSer(int x)
{
doble suma = 0;
doble tmp = 1.0 / x; p>
while (tmp > 0.00001)
{
suma +=tmp;
tmp /=x;
}
return suma
}
/*Función de cadena estadística*/
void print_n(const char *ch) p>
{
int dígito = 0;
int letra = 0;
int espacio_n = 0;
int other = 0;
cout << "Cadena original:" << ch << endl;
while (*ch != '\0')
{
if ((*ch >= 'a' && *ch <= 'z') || (*ch >= 'A' && *ch <= ' Z')) p>
++letra;
else if (*ch == ' ')
++space_n;
else if (*ch > = '0' && *ch <= '9')
++dígito;
más
++otro
r;
++ch;
}
cout << "El número de letras (a~z o A~Z) es: " << letra << "piezas" << endl;
cout << "El número de dígitos (0~9) es: " << dígito << "piezas" << endl;
cout << "El número de espacios es: " << space_n << "" << endl;
cout << "El número de otros caracteres es: " << other << " " << endl;
}
int main(int argc, char *argv[])
{
/* Introduzca un línea de caracteres de prueba*/
char *ch = new char[100];
cout << "Prueba de función de caracteres estadísticos: ingrese una línea de caracteres: " << endl ;
gets(ch);
print_n(ch);
eliminar []ch;
ch = NULL; p>
int num1(20);
cout << "Ingrese el número de elementos: n = " ;
cin >> num1; p> cout < < "2/1+3/2+5/3+...+La suma de los primeros 20 elementos es:" << mark_calc(num1) << endl;
int num2(10);
cout << "Por favor ingrese el valor de x: x = " ;
cin >> num2;
cout << " 1/x + 1/x*x + +(1/x^n <= 0.00001) y la suma es: " << intSer(num2) << endl;
int num3;
cout << "Por favor, introduzca un entero positivo: n = " ;
cin >> num3;
if (isPrime(num3))
cout << num3 << " ¡es un número primo! " << endl;
else
cout << num3 << " ¡No es un número primo! " << endl;
return 0;
}
/*Recomendaciones:
1. Se deben agregar algunas excepciones de entrada o manejo de errores
p>
2. Las condiciones de terminación que aparecen en el bucle deben ser Utilice representación de caracteres para facilitar la modificación;
3. El tiempo es limitado, por lo que se omiten algunas optimizaciones. (Fin)*/