Michelle Juárez Ocampo
303
ING. Rene Domínguez Escalona
INDICE
1--------------------A-resta y multiplicación
2---------------------B-frecuencia
3---------------------C-sumando
4---------------------D-ordenando
5---------------------E-password
6---------------------F-A+B
7---------------------G-mensaje de suma
8---------------------H-día de la semana
9---------------------I-multiplicando
10--------------------J-misión calcular el área
11--------------------K-cuadrado
12--------------------L-bardeando
13--------------------M-matriz cuadrada
14--------------------N-área de un rectángulo
15--------------------O-área de un triangulo
16--------------------P-ordenando a los alumnos
17--------------------Q-obtener promedio
18--------------------R-excursionista mayor
19--------------------S-bisiesto
20--------------------T-figuras rectangulares
21--------------------U-triángulos
22--------------------V-suma triple
23--------------------W-deuda2
24--------------------Z-cuadro magico
25--------------------10-0
26-------------------factorial de un número
27-------------------números impares
28-------------------mayor numero
29-------------------1-100
30-------------------par e impar
31--------------------Cuadro contorno
32--------------------triangulo
33--------------------rombo
34--------------------rombo contorno
35--------------------flecha
36--------------------cohete
37--------------------array1
38--------------------array2
39--------------------divisores
40--------------------hipotenusa
41--------------------suma de filas
42--------------------giro 180
43--------------------par e impar
44--------------------suma de números
45--------------------frecuencias
46--------------------donde está el 5?
A. Resta y multiplicación
Descripción
Haz un sencillo programa que lea 4 variables nombradas A, B, C y D. Y calcula e imprima la multiplicación de
la diferencia de A y B con la diferencia de C y D. (A−B∗C−D)
Entrada
Cuatro números enteros
Salida
El producto de la diferencia con 4 variables de acuerdo al ejemplo.
#include <iostream>
using namespace std;
int main() {
int a,b,c,d,rest,rest2,mult;
cin>>a;
cin>>b;
cin>>c;
cin>>d;
rest=a-b;
rest2=c-d;
mult=rest*rest2;
cout<<mult<<endl;
return 0;
}
Ejemplo
10 6 8 3 20
B. Frecuencias
Descripción
Cierta escuela realiza cuestionarios para conocer al profesor favorito de los alumnos. Y lo realiza de la
siguiente manera; a cada profesor se le asigna un número posteriormente a cada alumno se le pregunta cuál
es su profesor favorito, posteriormente, se calcula una tabla de frecuencia indicando en cada profesor cual es
la cantidad de alumnos que lo eligieron.
Problema
Escribe un programa que ayude a la escuela a escribir la tabla de frecuencias.
Entrada
En la primera línea el número “P” que indica la cantidad de profesores que tiene la escuela donde 1<=P <=
100 y el número “n” que indica la cantidad de alumnos en la escuela donde
1<=n<=1000. en la siguiente línea habrán “n” números que representan el número de profesor favorito “F” de
cada alumno donde 1<=F<=P.
Salida
Deberá haber “P” cantidad de líneas y en cada una dos números separados por un guión, el primer número
será el número del profesor y el segundo número la cantidad de alumnos que lo eligieron.
Consideraciones
Tu programa se evaluará con varios casos de prueba.
Entrada Salida Descripción
4 10
1 1 2 1 1 2 3 2 3
4
1-4
2-3
3-2
4-1
Case #1:
4 8
1 2 4 1 2 4 1 2
1-3
2-3
3-0
4-2
Case #2:
#include<iostream>
using namespace std;
int main (){
int n,m;
cin>>n;
cin>>m;
int a[m];
int p[n]={0};
for(int i=0;i<m;i++){
cin>>a[i];
}
for(int j=0;j<m;j++){
p[a[j]-1]++;
}
for(int i=0;i<n;i++){
cout<<i+1<<"-"<<p[i]<<endl;
}
return 0;
}
C. Sumando
Problema
Se tiene un matriz cuadrada de tamaño “n” y se requiere saber cuánto suma cada columna.
Entrada
En el primer renglón un valor “n” indicando el tamaño de la matriz donde 1<=n<=1000 y en los siguientes “n”
renglones habrán “n” valores correspondientes los valores de cada renglón de la matriz donde 1<=V<= 1000.
Salida
Un renglón con “n” cantidades, cada cantidad representa la sumatoria de cada columna de la matriz, el primer
valor corresponde a la columna 1, el segundo a la columna 2 ,... y el último valor corresponde a la columna
“n”. Consideraciones
Tu programa se evaluará con varios casos de prueba
Ejemplos
Entrada Salida Descripción
3
1 2 3
3 5 6
7 8 9
11 15 18 Case #1:
4
3 2 4 3
2 3 3 2
7 8 5 3
1 1 1 1
13 14 13 9 Case #2:
#include <iostream>
using namespace std;
int main (){
int n;
cin>>n;
int a[n][n];
int b[n]={0};
for (int i=0;i<n;i++)
{
for (int j=0; j<n;j++)
{
cin>>a[i][j];
b[j]+=a[i][j];
}
}
for (int j=0;j<n;j++)
{
cout<<b[j]<<" ";
}
cout<<endl;
D. Ordenando
Problema
Dada una lista de números enteros hayque determinar si la lista esta ordenada de menor a mayor, de mayor a menor o
sencillamente no está ordenada.
Entrada
En la primera línea un valor “n” indicando la cantidad de valores que conforma la lista,donde 3<=n<=1000,en la segunda línea los “n”
números separados por un espacio,cada número está en el rango de 1 a 1,000,000,000. Salida
Una sola línea con 3 posibles valores,si la lista está ordenada de menor a mayor debes escribir l a palabra “CRECIENTE” si la lista
esta ordenada de mayor a menor debes escribir la palabra “DECRECIENTE” y si la lista no esta ordenada debes escribir la frase “NO
ORDENADA”. Te
aseguramos que no existe un caso con posibilidad de empate (que pueda ser creciente y decreciente). Consideraciones
Tu programa se evaluará con varios casos de prueba
#include <iostream>
using namespace std;
int main (){
int n,f=0,de=0;
cin>>n;
int* g=new int[n];
for(int l=0; l<n; l++)
{
cin>>g[l];
}
for(int l=0; l<n; l++) {
if(g[l]<g[l+1]){
f++;
}
if(g[l]>g[l+1]){
de++;
}
}
if(f==n){
cout<<"CRECIENTE";
}else if(de==n-1){
cout<<"decreciente";
}else{
cout<<"NO OREDNADO";
}
return 0;
Ejemplos Entrada Salida Descripción
5
10 20 30 40 40
CRECIENTE Case #1:
3
3 2 2 DECRECIENTE Case #2:
4
1 10 10 5 NO ORDENADA Case #3:
E. Password
Descripción
Para que un password sea seguro debe seguir las siguientes reglas:
Tener al menos una vocal.
No tener dos o más caracteres consecutivos iguales.
Tener una longitud de al menos 12 caracteres.
Tener al menos un carácter numérico.
Problema
Escribe un que nos ayude a determinar si un password es seguro o no.
Entrada
En la primera línea un número n indicando la cantidad de caracteres que conforman el password, donde
1≤n≤100, en la siguiente línea n caracteres que pueden ser letras de la A a la Z, números del 1 al 9. las letras
minúsculas y mayúsculas se consideran diferentes.
Salida
Si el password es seguro de acuerdo a las reglas establecidas debes escribir la palabra SEGURO en caso
contrario debes escribir la frase INSEGURO.
#include<iostream>
using namespace std;
int main(){
int n,pass;
cin>>n;
for(int i=0;i<n;i++){
cin>>pass;
}
if(n<12){
cout<<"INSEGURO";
}else
cout<<"SEGURO";
}
Ejemplos Entrada
Salida
5
abcdd INSEGURO
12
aft156YTU512 SEGURO
F. A+B
Descripción
Este problema consiste en crear un programa que sume dos números.
Entrada
Dos números A y B separados por un espacio.
Salida
Imprime A+B
Ejemplo
Entrada Salida Descripción
1 2 3 1+2=3
5 10 15 5+10=15
#include <iostream>
using namespace std;
int main() {
int a,b,suma;
cin>>a;
cin>>b;
suma=a+b;
cout<<suma<<endl;
return 0;
}
G. Mensaje Sumas
Descripción
Es un problema muy simple, para acostumbrarse a los jueces automáticos, lo que tienes que hacer es recibir
dos números y con estos dos números los sume y muestre la salida indicando el mensaje de la suma como se
muestra en el ejemplo.
Entrada
Un número entero a y un número entero b.
Salida
Debe mostrar el siguiente mensaje donde a y b debe sustituirse por los valores que recibe como entrada el
programa y la palabra resultado por la suma de ambos numeros, asegurate de respetar mayúsculas y
minúsculas y los espacios en blanco intermedios.
La suma de a + b es resultado
Ejemplo
Entrada Salida
1
2 La suma de 1 + 2 es 3
#include <iostream>
using namespace std;
int main() {
int a,b,suma;
cin>>a;
cin>>b;
suma=a+b;
cout<<"La suma de "<<a<<" + "<<b<<" es "<< suma<<endl;
return 0;
}
H. Día de la semana
Descripción
Se esta programando un robot que apartir de que le indiques un número te dira que día de la semana es pero
el robot tiene un problema el puede recibir un número del del 1 al 7 y dirá el día de la semana
correspondiente(donde el 1 es el día lunes),pero si recibe un número incorrecto el robot manda un mensaje de
error, pero se ha descubierto que el robot cuando introduces el número tiene un error por que el programador
del robot uso la siguiente formula que se le aplica al número que introduce 2n+1 y apartir de aqui indica el día,
es decir si el usuario introduce un 1 el resultado será Miercoles.
Entrada
1
Salida
Miércoles
Entrada
8
Salida
error
#include <iostream>
using namespace std;
int main() {
int n,dia;
cin>>n;
dia=(2*n)+1;
switch (dia)
{
case 1: cout<<"Lunes"<<endl;
break;
case 2: cout<<"Martes"<<endl;
break;
case 3: cout<<"Miercoles"<<endl;
break;
case 4: cout<<"Jueves"<<endl;
break;
case 5: cout<<"Viernes"<<endl;
break;
case 6: cout<<"Sabado"<<endl;
break;
case 7: cout<<"Domingo"<<endl;
break;
default: cout<<"Error"<<endl;
break;
}
return 0;
I. Multiplicando
Descripción
Se requiere que realices un un cálculo a partir de recibir un número, entregar el producto de los números
consecutivos del 1 a n, por ejemplo si recibes el 3 el resultado es 6, es decir el resultado de multiplicar 1×2×3.
Entrada
Un único entero n.
Salida
La multiplicación de los números consecutivos del 1 al n.
Límites
Ejemplo
Entrada Salida
5 120
#include <iostream>
using namespace std;
int main() {
int n,fac=1;
cin>>n;
for(int i=1; i<=n;i++)
{
fac*=i;
}
cout<<fac;
return 0;
}
J. Misión Calcular Área
Descripción
Tu misión si decides aceptarla es encontrar el área de un cilindro, cuya formula como bien sabes es 2PIr*h
donde PI es 3.1416 y r:representa el radio y h:la altura. pero cuidado por que no estan sencillo resolver el
problema el resultado lo debes entregar con 2 cifras decimales despues del punto.
Entrada
1 2
Salida
12.57
Notas
El primer número que recibes es el radio y el segundo número es la altura.
La misión aunque parecia muy sencilla, se va a complicar por que si el primer número que lees es el -1 debes
ignorarlo y en seguida leer el radio y posteriormente la altura. ||end
#include<iostream>
#include<math.h>
#include <stdio.h>
#include <iomanip>
using namespace std;
int main (){
float r,h,area,pi=3.1416;
double total;
cin>>r;
if(r>=1){
cin>>h;
area=(2*pi)*r;
total=area*h;
cout<<fixed<<setprecision(2)<<total;
}else
if(r<1){
cin>>r;
cin>>h;
area=(2*pi)*r;
total=area*h;
cout<<fixed<<setprecision(2)<<total;
}
}
K. Cuadrado
Descripción.
A continuación te mostramos un giro de 90 grados a la derecha de una matriz de 2 por 2 cuyos valores son:
Matriz original
1 2
3 4
Matriz Girada 90° a la derecha
3 1
4 2
Problema
Dada una matriz cuadrada de tamaño “n” , debes hacer que tu programa la gire 90 grados a la derecha.
Entrada
En la primera línea el valor “n” indicando el tamaño de la matriz donde 1<=n<=1000,en los siguientes “n” renglones habrán “n ” valores
de la matriz separados por un espacio.
Salida
“n” renglones cada renglón con "n"valores mostrando la matrizgirada 90 grados.
Consideraciones Tu programa se evaluará con varios casos de prueba
Ejemplo
Entrada Salida Descripción
2
1 2
3 4
3 1
4 2
Case #1:
Entrada Salida Descripción
3
1 2 3
4 5 6
7 8 9
7 4 1
8 5 2
9 6 3
Case #2:
#include <iostream>
using namespace std;
int main () {
int n,m;
cin>>n;
int a[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
cin>>a[i][j];
}
}
cout<<endl;
for (int i=0; i<n; i++){
for (int j=n-1; j>=0; j--){
cout<<a[j][i]<<" ";
}
cout<<endl;
}
}
L. Bardeando
Descripción
Se tiene un conjunto de “n” trozos de malla ciclónica y un terreno de perímetro “P” el terreno es cuadrado.
Problema
Debes escribir un programa que nos diga cuántos metros de malla ciclonica nos hace falta para poder bardear
el terreno.
Entrada
En la primera línea dos números “P” y "n", donde "P" representa el perímetro del terreno con un rango de
valores de 1<=P <= 2,000,000,000 y “n” representa la cantidad de trozos de malla ciclónica que tenemos,
donde 1<=n<=100,000. En las siguientes “n” líneas es el tamaño de cada trozo de malla que tenemos. La
suma de todos los trozos siempre será menor a 2147483648.
Salida
Un único valor entero indicando los metros de malla que nos hacen falta para bardear el terreno.
Ejemplos
Entrada Salida Descripción
100 3
25
20
45 Caso #1
Entrada Salida Descripción
10
100 2
1000
2000
0 Caso #2
21 1
20
1 Caso #3
Consideraciones
Tu programa se ejecutara con varios casos de prueba.
#include<iostream>
using namespace std;
int main(){
int P,n,c,m=0,mc=0;
cin>>P>>n;
for (int i=0;i<n;i++){
cin>>c;
m+=c;
}
mc=P-m;
if(m>P){
cout<<0;
}else
cout<<mc<<endl;
}
M. Matriz Cuadrada
Descripción
Descripción Tenemos una matriz de “R” renglones por “C” columnas, donde podemos enumerar las casillas de la
siguiente manera, la casilla 1,1 (renglón 1, columna 1), la casilla 1,2 (renglón 1, columna 2) y la casilla 1,3 (renglón 1,
columna 3 ) serían respectivamente las posiciones 1, 2 y 3 como se puede ver en la figura, donde la casilla 1,1 es la
esquina superior izquierda y la celda “R” x “C” es la celda ubicada en la esquina inferior derecha.
En esta cuadrícula, podemos hacer preguntas de la forma, ¿que número está en la casilla 1,2 ? y su
respuesta sería 2 otro ejemplo ¿qué número está en la celda 2,3? y su respuesta es 6.
Problema
Escribe un programa que dada las dimensiones de la cuadrícula responda una cantidad “P” de preguntas. Entrada
En la primera línea dos valores indicando las dimensiones de la cuadrícula separados por un espacio ‘R’ cantidad de
renglones donde 1<=R<=10000 y “C” cantidad de columnas donde 1<=C<=10000, En la tercera línea el número “P”
cantidad de preguntas donde 1<=P<=10,000 y en las siguientes “P” líneas un par de coordenadas de la forma r, c,
representando las coordenadas de cada pregunta en donde “r” indica el renglón 1<=r<=R y “c” la columna 1<=c<=C por
cada pregunta.
Salida
Por cada pregunta debe escribir en cada línea el número de casilla que le corresponde.
Consideraciones
Tu programa se ejecutara con varios casos de prueba.
Entrada Salida Descripción
3 3
3
1 1
2 2
3 3
1 5 9 Caso #1
3 1000
2
2 1
2 10
1001
2010
Caso #2
#include<iostream>
using namespace std;
int main(){
int r,c,p,r1;
cin>>r>>c>>p;
int a[p][2];
for( int i=0; i<p;i++){
for( int j=0; j<2;j++){
cin>>a[i][j];
}
}
for(int k=0;k<p;k++){
r=((a[k][0]-1)*c)+a[k][1];
cout<<endl<<endl;
cout<<r<<" ";
}
N. Área de un rectángulo
Descripción
Se te darà la base y la altura de un rectángulo, deberás desplegar su área.
Entrada
Dós números b y a
Salida
La salida deberá ser el área del rectángulo
Ejemplo
12 5 60
2 7 14
#include <iostream>
using namespace std;
int main() {
int b,a,area;
cin>>b;
cin>>a;
area=b*a;
cout<<area<<endl;
return 0;
}
O. Área de un triángulo
Descripción
Se te dará la base y la altura de un triángulo, deberás desplegar su área.
Entrada
Dós números b y a
Salida
La salida deberá ser el área del triángulo con dos decimales después del punto.
Ejemplo 12
5 30.00
#include<iostream>
#include<math.h>
#include <stdio.h>
#include <iomanip>
using namespace std;
main (){
float b,a;
double area;
cin>>b;
cin>>a;
area=(b*a)/2;
cout<<fixed<<setprecision(2)<<area;
}
P. 1 Ordena a los alumnos
Descripción
Los Chicos de la escuela van a recibir un premio, pero tienen que estar formados de la calificacion mayor a la menor, ya
que el Profe Rayito quiere orden y dar el mejor premio a la mejor calificacion, y asi sucesivamente.
Entrada
Primero hay que pedir la cantidad de Alumnos y despues las calificaciones
Salida
Mostrar las calificaciones ordenadas del mayor al menor
Ejemplo
Entrada Salida Descripción
4
75 82 100 50
100 82 75 50 Cantidad de alumnos, y en la
segunda linea las calificaciones
#include <iostream>
using namespace std;
int main (){
int perro,ironman;
cin>>perro;
int* gato=new int[perro];
for(int leon=0; leon<perro; leon++)
{
cin>>gato[leon];
}
cout<<endl<<endl;
for(int leon=0; leon<perro; leon++)
{
for (int luna=1;luna<perro; luna++)
{
if (gato[luna]>gato[luna-1])
{
ironman=gato[luna];
gato[luna]=gato[luna-1];
gato[luna-1]=ironman;
}
}
}
for(int luna=0; luna<perro; luna++)
{
cout<<gato[luna]<<" "
}
cout<<endl<<endl
return 0;
Q. Obtener promedio
Descripción
EL maestro Melquiades quiere saber el promedio de calificaciones de su grupo, Por lo que tu como
programador le ayudaras codificando un programita que le pida una cantidad de alumnos, y en seguida las
calificaciones
Entrada
La cantidad de Alumnos y las "n" calificaciones en escala 0 al 100, sin decimales.
Salida
Mostrar el promedio con dos decimales.
Ejemplo
Entrada Salida Descripción
4
50 100 100 50
75.00 Pedir la Cantidad de
alumnos, y las "n"
calificaciones. Mostrar el
promedio con dos
decimales.
#include<iostream>
#include<math.h>
#include <stdio.h>
#include <iomanip>
using namespace std;
int main (){
int n,ironman;
float suma,p,promedio;
cin>>n;
int* g=new int[n];
for(int l=1; l<n-1; l++)
{
}
for(int i=1; i<=n; i++){
cin>>p;
suma+=p;
}
promedio=suma/n;
cout<<fixed<<setprecision(2)<<promedio;
}
R. El excursionista Mayor
Descripción
Los Falmos van de excursión, pero de todo el grupo de "humanitos" el que tiene la mayor edad es al que se le
entregara el dinero para la compra del material de campamento. Ayudale a Mamá Falmo a saber quien es el
que tiene la mayor edad.
Entrada
Preguntar cuantos van a ir de excursión, y la edad de cada uno.
Salida
Mostrar solo la edad mas grande.
Ejemplo
Entrada Salida Descripción
5
15 16 5 13 12
16 Pedir la cantidad de
Excursionistas, y la edad
de cada uno.Desplegar la
Edad del mayor.
Límites
#include <iostream>
using namespace std;
int main() {
int n,m=0;
cin>>n;
int* a=new int[n];
for(int i=0;i<n;i++){
a[i]=i+1;
cin>>a[i];
if(a[i]>m){
m=a[i];
}
}
cout<<m<<endl;
return 0;
}
S. Bisiesto
Descripción
Un año es bisiesto si es divisible entre 4, a menos que sea divisible entre 100. Sin embargo, si un año es
divisible entre 100 y además es divisible entre 400, también resulta bisiesto.
Entrada
La primera línea tendrá un número N, la cantidad de años por analizar. Después habrá N líneas con un solo
número entero, que representa el año que tendrás que decidir si es o no bisiesto. Todos los años serán
mayores a 1600 y menores a 3,000.
Salida
Por cada año de la entrada escribe una "S" o una "N", dependiendo de si el año es bisiesto o no
respectivamente.
Límites
Ejemplo
Entrada Salida
2
2011
2012
N
S
#include<iostream>
using namespace std;
int main (){
int n;
cin>>n;
int* a=new int[n];
for(int i=1; i<=n;i++){
cin>>a[n];
if(a[n]>1600 && a[n]<3000){
if (a[n]%4==0){
cout<<"S"<<endl;
}else
if (a[n]%100==0 && a[n]%400==0){
cout<<"S"<<endl;
}else{
cout<<"N"<<endl;
}
}
}
}
T. Figuras Rectangulares
Descripción
Tenemos un conjunto de cuadrados y rectángulos cuyos medidas de sus diferentes lados son cantidades enteras y
mayores a 1 y , si tenemos el área de la figura, es posible que sea un cuadrado o un rectángulo.
Problema
Construye un programa que nos ayude a resolver este problema (dada el área de una figura determinar si es cuadrado o
rectángulo), la lectura la debes hacer de la entrada estándar (teclado) y la escritura se debe hacer a la salida estándar
(pantalla).
Entrada
La primera línea contendrá un número "N" entre 1 y 1,000,000,000, representando el área.
Salida
Una sola línea indicando la figura que se puede formar, si el área puede formar un cuadrado debes imprimir la palabra
“cuadrado” si el área puede formar un rectángulo, debes imprimir la palabra “rectangulo” y si el área puede formar ambos
debe imprimir la palabra “ambos” (note no hay acentos ni mayusculas), en caso de que no se pueda formar un cuadrado
o rectángulo escriba "ninguno"
Consideraciones
Tu programa se ejecutara con varios casos de prueba.
Tips
también es divisible entre
N/2 por tanto si probamos con el numero 2,estamos al mismo tiempo probando con el numero N/2.
Entrada Salida
9 cuadrado
6 rectángulo
36 ambos
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int n,raiz,rectangulo,cuadrado;
cin>>n;
raiz=sqrt(n);
cuadrado=raiz*raiz;
rectangulo=n/2*2;
if(rectangulo==n && cuadrado==n){
cout<<"ambos";
}else
if(rectangulo==n){
cout<<"rectangulo";
}else{
if(cuadrado==n){
cout<<"cuadrado";
}else
cout<<"ninguno"; }
U. Triángulo
Descripción
Un triángulo es formado por 3 segmentos (con valor entero) de recta unidos por sus extremos, sin embargo no
todas las combinaciones de 3 segmentos pueden formar un triángulo.
Problema
Escriba un programa que dados 3 números que representan 3 segmentos de rectas, diga si pueden formar un
triángulo rectángulo.
Entrada
En la primera línea 3 números “a”, “b” y “c” representando las longitudes de 3 segmentos de recta en un rango
de entre 1 y 32,000.
Salida
Una sola línea en donde si es posible generar un triángulo rectángulo debes imprimir la hipotenusa, el cateto
mayor y el cateto menor y si no es posible formar un triángulo rectángulo imprime la palabra “imposible”.
Consideraciones
Tu programa se evaluará con varios casos de prueba, para cada caso de prueba (entrada)
Ejemplos
Entrada Salida Descripci
ón
1 1 1 imposible Caso #1
3 4 5 5 4 3 Caso #2
Consideraciones
Tu programa se ejecutara con varios casos de prueba.
Tips
El teorema de Pitágoras la hipotenusa es igual a la raíz cuadrada de la suma de los cuadrados de sus catetos.
¿Es necesario hacer el cálculo de la raíz cuadrada?
#include<iostream>
using namespace std;
int main(){
float a,b,c;
cin>>a>>b>>c;
if (a<(b+c)&& b<(a+c)){
cout<<c<<" "<<b<<" "<<a<<endl;
}else
cout<<"Imposible";
}
V. Suma Triple
Descripción
Se tiene la siguiente función f(n), formada por la suma de los tres números anteriores.
f(1)=1
f(2)=1
f(3)=2
f(4)=4
f(5)=7
f(6)=13
f(7)=24
f(8)=44
f(9)=81
Note que f(1) = 1 ya que no tiene números anteriores, f(2)=1 ya que es el único número anterior, f(3) tiene solo
2 números anteriores y a partir de f(4) se da la suma de los tres números anteriores.
Problema
Escribe un programa que dado el valor de “n” escriba la serie correspondiente.
Entrada
Un solo renglón conteniendo el valor “n”donde 1<=n<=64.
Salida
Una sola línea mostrando la serie desde el número menor hasta el mayor cada número debe estar separado
por un espacio.
Tips
Un entero 32 bits es capaz de almacenar la f(n) para n=60
#include <iostream>
using namespace std;
int main() {
int n;
cin>>n;
long* a=new long[n];
a[0]=1;
a[1]=1;
a[2]=2;
for (long i=3;i<n;i++)
{
a[i]=a[i-1]+a[i-2]+a[i-3];
}
for(long m=0;m<n;m++){
cout<<a[m]<<" ";
}
return 0
Entrada Salida Descripción
4 1 1 2 4 Caso #1
6 1 1 2 4 7 13 Caso #2
9 1 1 2 4 7 13 24
44 81
Caso #3
W. Deuda 2
Descripción
Nuestro amigo Cope tiene un problema pues le debe algunas cosas a cierta persona con la cual no puede quedar mal, sin embargo
dicha persona es muy mala con Cope y trata de hacer que le pague más de lo que le debe, para esto le dice que los intereses h an
subido y pone mil cosas para cobrar de más pero del unico interes que se hablo fue al momento de comenzar la transacción. Ayud a a
Cope a llevar un buen control de su deuda sabiendo cuanto debe ycuanto abona, se sabe que originalmente se indico los intere ses.
Entrada
En la primera línea tres números enteros I, N, M separados por un espacio representando el interes acordado(número entero que
representa el interes) inicialmente, número de cosas que debe Cope y los pagos que hará respectivamente. Siguiente M líneas un
entero representando el pago de Cope.
Salida
Un entero representando como finaliza la cuenta de Cope.
Ejemplo
Entrada Salida Descripción
0 10 2
3
6
1
Ninguna.
Entrada Salida Descripción
100 10 2
3
6
11
Ninguna.
#include <iostream>
using namespace std;
int main()
{
int i,n,m,c,a,g,suma=0;
cin>>i>>n>>m;
for(int i=0;i<m;i++)
{
cin>>c;
suma+=c;
}
a=n-suma;
g=a+i/n;
cout<<g;
return 0;
Z. Cuadro mágico
Descripción
Dado un tablero de tres filas por tres columnas con dígitos (1 a 9) en cada casilla, determina si se trata de un
cuadrado mágico. En un cuadrado mágico la suma de los valores en cada fila, cada columna y cada diagonal,
siempre es 15.
Entrada
Tres líneas, en cada línea tres dígitos separados por espacios.
Salida
Imprime SI, si se trata de un cuadrado mágico, NO en caso contrario.
Ejemplo
Entrada
6 1 8
7 5 3
2 9 4
Salida
SI
#include <iostream>
using namespace std;
int main (){
int a,b,c,d,e,f,g,h,i,suma1=0,suma2=0,suma3=0,suma4=0,suma5=0,suma6=0,suma7=0,suma8=0;
cin>>a>>b>>c>>d>>e>>f>>g>>h>>i;
suma1=a+b+c;
suma2=d+e+f;
suma3=g+h+i;
suma4=a+d+g;
suma5=b+e+h;
suma6=c+f+i;
suma7=a+e+i;
suma8=c+e+g;
if(suma1==15 && suma2==15 && suma3==15 && suma4==15 && suma5==15 && suma6==15 && suma7==1
5 && suma8==15){
cout<<"SI"<<endl;
}else
cout<<"NO"<<endl;
}
CUADERNO
25.-10-0
Descripción
Sin ingresar ningún número, Se ordenara del 10 al 0
Entrada Salida
10
9
8
7
6
5
4
3
2
1
#include <iostream>
using namespace std;
int main() {
for(int n=10;n>=0;n--){
cout<<n<<endl;
}
}
26.-Factorial de un número
Descripción
Sacará el factorial del número que tú quieras
#include <iostream>
using namespace std;
int main() {
int n,fac=1;
cin>>n;
for(int i=1;i<=n;i++){
fac*=i, fac*1=
}
cout<<fac;
}
27.-numeros impares
Descripción
Solicitaras un número y te saldrán solo los números impares
Entrada y salida
#include <iostream>
using namespace std;
int main() {
int n;
cin>>n;
for (int v=1;v<n*2;v+=2){
cout<<v<<" ";
}
}
28.-Mayor de números
Descripción
Pondrás una serie de números y el resultado será el mayor número
Entrada y salida
29.-1-100
#include <iostream>
using namespace std;
int main() {
int n,p,mayor=0;
cin>>n;
for(int i=1;i<n;i++){
cin>>p;
if(p>mayor)
mayor=p;
}
cout<<"mayor"<<mayor<<endl;
}
Descripción
Te pondrá la numeración completa del 1 al 100
Entrada y salida
for(intj=1;j<100;j+=2){
cout<<j<<endl;}
30.-Par e Impar
Descripción
Una serie de números te dirá si es impar o par
Entrada y salida
#include <iostream>
using namespace std;
int main() {
for (int i=1;i<=100;i++){
if(i%2==0){
cout<<i<<"par"<<endl;
}
else{
cout<<i<<"impar"<<endl;
}
}
31.- triangulo
39.- divisores

Software omegaup

  • 1.
    Michelle Juárez Ocampo 303 ING.Rene Domínguez Escalona
  • 2.
    INDICE 1--------------------A-resta y multiplicación 2---------------------B-frecuencia 3---------------------C-sumando 4---------------------D-ordenando 5---------------------E-password 6---------------------F-A+B 7---------------------G-mensajede suma 8---------------------H-día de la semana 9---------------------I-multiplicando 10--------------------J-misión calcular el área 11--------------------K-cuadrado 12--------------------L-bardeando 13--------------------M-matriz cuadrada 14--------------------N-área de un rectángulo 15--------------------O-área de un triangulo 16--------------------P-ordenando a los alumnos 17--------------------Q-obtener promedio 18--------------------R-excursionista mayor 19--------------------S-bisiesto 20--------------------T-figuras rectangulares 21--------------------U-triángulos 22--------------------V-suma triple 23--------------------W-deuda2 24--------------------Z-cuadro magico 25--------------------10-0 26-------------------factorial de un número 27-------------------números impares
  • 3.
    28-------------------mayor numero 29-------------------1-100 30-------------------par eimpar 31--------------------Cuadro contorno 32--------------------triangulo 33--------------------rombo 34--------------------rombo contorno 35--------------------flecha 36--------------------cohete 37--------------------array1 38--------------------array2 39--------------------divisores 40--------------------hipotenusa 41--------------------suma de filas 42--------------------giro 180 43--------------------par e impar 44--------------------suma de números 45--------------------frecuencias 46--------------------donde está el 5?
  • 4.
    A. Resta ymultiplicación Descripción Haz un sencillo programa que lea 4 variables nombradas A, B, C y D. Y calcula e imprima la multiplicación de la diferencia de A y B con la diferencia de C y D. (A−B∗C−D) Entrada Cuatro números enteros Salida El producto de la diferencia con 4 variables de acuerdo al ejemplo. #include <iostream> using namespace std; int main() { int a,b,c,d,rest,rest2,mult; cin>>a; cin>>b; cin>>c; cin>>d; rest=a-b; rest2=c-d; mult=rest*rest2; cout<<mult<<endl; return 0; } Ejemplo 10 6 8 3 20
  • 5.
    B. Frecuencias Descripción Cierta escuelarealiza cuestionarios para conocer al profesor favorito de los alumnos. Y lo realiza de la siguiente manera; a cada profesor se le asigna un número posteriormente a cada alumno se le pregunta cuál es su profesor favorito, posteriormente, se calcula una tabla de frecuencia indicando en cada profesor cual es la cantidad de alumnos que lo eligieron. Problema Escribe un programa que ayude a la escuela a escribir la tabla de frecuencias. Entrada En la primera línea el número “P” que indica la cantidad de profesores que tiene la escuela donde 1<=P <= 100 y el número “n” que indica la cantidad de alumnos en la escuela donde 1<=n<=1000. en la siguiente línea habrán “n” números que representan el número de profesor favorito “F” de cada alumno donde 1<=F<=P. Salida Deberá haber “P” cantidad de líneas y en cada una dos números separados por un guión, el primer número será el número del profesor y el segundo número la cantidad de alumnos que lo eligieron. Consideraciones Tu programa se evaluará con varios casos de prueba. Entrada Salida Descripción 4 10 1 1 2 1 1 2 3 2 3 4 1-4 2-3 3-2 4-1 Case #1: 4 8 1 2 4 1 2 4 1 2 1-3 2-3 3-0 4-2 Case #2: #include<iostream> using namespace std; int main (){ int n,m; cin>>n; cin>>m; int a[m]; int p[n]={0}; for(int i=0;i<m;i++){ cin>>a[i]; } for(int j=0;j<m;j++){ p[a[j]-1]++; } for(int i=0;i<n;i++){ cout<<i+1<<"-"<<p[i]<<endl; } return 0; }
  • 6.
    C. Sumando Problema Se tieneun matriz cuadrada de tamaño “n” y se requiere saber cuánto suma cada columna. Entrada En el primer renglón un valor “n” indicando el tamaño de la matriz donde 1<=n<=1000 y en los siguientes “n” renglones habrán “n” valores correspondientes los valores de cada renglón de la matriz donde 1<=V<= 1000. Salida Un renglón con “n” cantidades, cada cantidad representa la sumatoria de cada columna de la matriz, el primer valor corresponde a la columna 1, el segundo a la columna 2 ,... y el último valor corresponde a la columna “n”. Consideraciones Tu programa se evaluará con varios casos de prueba Ejemplos Entrada Salida Descripción 3 1 2 3 3 5 6 7 8 9 11 15 18 Case #1: 4 3 2 4 3 2 3 3 2 7 8 5 3 1 1 1 1 13 14 13 9 Case #2: #include <iostream> using namespace std; int main (){ int n; cin>>n; int a[n][n]; int b[n]={0}; for (int i=0;i<n;i++) { for (int j=0; j<n;j++) { cin>>a[i][j]; b[j]+=a[i][j]; } } for (int j=0;j<n;j++) { cout<<b[j]<<" "; } cout<<endl;
  • 7.
    D. Ordenando Problema Dada unalista de números enteros hayque determinar si la lista esta ordenada de menor a mayor, de mayor a menor o sencillamente no está ordenada. Entrada En la primera línea un valor “n” indicando la cantidad de valores que conforma la lista,donde 3<=n<=1000,en la segunda línea los “n” números separados por un espacio,cada número está en el rango de 1 a 1,000,000,000. Salida Una sola línea con 3 posibles valores,si la lista está ordenada de menor a mayor debes escribir l a palabra “CRECIENTE” si la lista esta ordenada de mayor a menor debes escribir la palabra “DECRECIENTE” y si la lista no esta ordenada debes escribir la frase “NO ORDENADA”. Te aseguramos que no existe un caso con posibilidad de empate (que pueda ser creciente y decreciente). Consideraciones Tu programa se evaluará con varios casos de prueba #include <iostream> using namespace std; int main (){ int n,f=0,de=0; cin>>n; int* g=new int[n]; for(int l=0; l<n; l++) { cin>>g[l]; } for(int l=0; l<n; l++) { if(g[l]<g[l+1]){ f++; } if(g[l]>g[l+1]){ de++; } } if(f==n){ cout<<"CRECIENTE"; }else if(de==n-1){ cout<<"decreciente"; }else{ cout<<"NO OREDNADO"; } return 0; Ejemplos Entrada Salida Descripción 5 10 20 30 40 40 CRECIENTE Case #1: 3 3 2 2 DECRECIENTE Case #2: 4 1 10 10 5 NO ORDENADA Case #3:
  • 8.
    E. Password Descripción Para queun password sea seguro debe seguir las siguientes reglas: Tener al menos una vocal. No tener dos o más caracteres consecutivos iguales. Tener una longitud de al menos 12 caracteres. Tener al menos un carácter numérico. Problema Escribe un que nos ayude a determinar si un password es seguro o no. Entrada En la primera línea un número n indicando la cantidad de caracteres que conforman el password, donde 1≤n≤100, en la siguiente línea n caracteres que pueden ser letras de la A a la Z, números del 1 al 9. las letras minúsculas y mayúsculas se consideran diferentes. Salida Si el password es seguro de acuerdo a las reglas establecidas debes escribir la palabra SEGURO en caso contrario debes escribir la frase INSEGURO. #include<iostream> using namespace std; int main(){ int n,pass; cin>>n; for(int i=0;i<n;i++){ cin>>pass; } if(n<12){ cout<<"INSEGURO"; }else cout<<"SEGURO"; } Ejemplos Entrada Salida 5 abcdd INSEGURO 12 aft156YTU512 SEGURO
  • 9.
    F. A+B Descripción Este problemaconsiste en crear un programa que sume dos números. Entrada Dos números A y B separados por un espacio. Salida Imprime A+B Ejemplo Entrada Salida Descripción 1 2 3 1+2=3 5 10 15 5+10=15 #include <iostream> using namespace std; int main() { int a,b,suma; cin>>a; cin>>b; suma=a+b; cout<<suma<<endl; return 0; }
  • 10.
    G. Mensaje Sumas Descripción Esun problema muy simple, para acostumbrarse a los jueces automáticos, lo que tienes que hacer es recibir dos números y con estos dos números los sume y muestre la salida indicando el mensaje de la suma como se muestra en el ejemplo. Entrada Un número entero a y un número entero b. Salida Debe mostrar el siguiente mensaje donde a y b debe sustituirse por los valores que recibe como entrada el programa y la palabra resultado por la suma de ambos numeros, asegurate de respetar mayúsculas y minúsculas y los espacios en blanco intermedios. La suma de a + b es resultado Ejemplo Entrada Salida 1 2 La suma de 1 + 2 es 3 #include <iostream> using namespace std; int main() { int a,b,suma; cin>>a; cin>>b; suma=a+b; cout<<"La suma de "<<a<<" + "<<b<<" es "<< suma<<endl; return 0; }
  • 11.
    H. Día dela semana Descripción Se esta programando un robot que apartir de que le indiques un número te dira que día de la semana es pero el robot tiene un problema el puede recibir un número del del 1 al 7 y dirá el día de la semana correspondiente(donde el 1 es el día lunes),pero si recibe un número incorrecto el robot manda un mensaje de error, pero se ha descubierto que el robot cuando introduces el número tiene un error por que el programador del robot uso la siguiente formula que se le aplica al número que introduce 2n+1 y apartir de aqui indica el día, es decir si el usuario introduce un 1 el resultado será Miercoles. Entrada 1 Salida Miércoles Entrada 8 Salida error #include <iostream> using namespace std; int main() { int n,dia; cin>>n; dia=(2*n)+1; switch (dia) { case 1: cout<<"Lunes"<<endl; break; case 2: cout<<"Martes"<<endl; break; case 3: cout<<"Miercoles"<<endl; break; case 4: cout<<"Jueves"<<endl; break; case 5: cout<<"Viernes"<<endl; break; case 6: cout<<"Sabado"<<endl; break; case 7: cout<<"Domingo"<<endl; break; default: cout<<"Error"<<endl; break; } return 0;
  • 12.
    I. Multiplicando Descripción Se requiereque realices un un cálculo a partir de recibir un número, entregar el producto de los números consecutivos del 1 a n, por ejemplo si recibes el 3 el resultado es 6, es decir el resultado de multiplicar 1×2×3. Entrada Un único entero n. Salida La multiplicación de los números consecutivos del 1 al n. Límites Ejemplo Entrada Salida 5 120 #include <iostream> using namespace std; int main() { int n,fac=1; cin>>n; for(int i=1; i<=n;i++) { fac*=i; } cout<<fac; return 0; }
  • 13.
    J. Misión CalcularÁrea Descripción Tu misión si decides aceptarla es encontrar el área de un cilindro, cuya formula como bien sabes es 2PIr*h donde PI es 3.1416 y r:representa el radio y h:la altura. pero cuidado por que no estan sencillo resolver el problema el resultado lo debes entregar con 2 cifras decimales despues del punto. Entrada 1 2 Salida 12.57 Notas El primer número que recibes es el radio y el segundo número es la altura. La misión aunque parecia muy sencilla, se va a complicar por que si el primer número que lees es el -1 debes ignorarlo y en seguida leer el radio y posteriormente la altura. ||end #include<iostream> #include<math.h> #include <stdio.h> #include <iomanip> using namespace std; int main (){ float r,h,area,pi=3.1416; double total; cin>>r; if(r>=1){ cin>>h; area=(2*pi)*r; total=area*h; cout<<fixed<<setprecision(2)<<total; }else if(r<1){ cin>>r; cin>>h; area=(2*pi)*r; total=area*h; cout<<fixed<<setprecision(2)<<total; } }
  • 14.
    K. Cuadrado Descripción. A continuaciónte mostramos un giro de 90 grados a la derecha de una matriz de 2 por 2 cuyos valores son: Matriz original 1 2 3 4 Matriz Girada 90° a la derecha 3 1 4 2 Problema Dada una matriz cuadrada de tamaño “n” , debes hacer que tu programa la gire 90 grados a la derecha. Entrada En la primera línea el valor “n” indicando el tamaño de la matriz donde 1<=n<=1000,en los siguientes “n” renglones habrán “n ” valores de la matriz separados por un espacio. Salida “n” renglones cada renglón con "n"valores mostrando la matrizgirada 90 grados. Consideraciones Tu programa se evaluará con varios casos de prueba Ejemplo Entrada Salida Descripción 2 1 2 3 4 3 1 4 2 Case #1: Entrada Salida Descripción 3 1 2 3 4 5 6 7 8 9 7 4 1 8 5 2 9 6 3 Case #2: #include <iostream> using namespace std; int main () { int n,m; cin>>n; int a[n][n]; for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ cin>>a[i][j]; } } cout<<endl; for (int i=0; i<n; i++){ for (int j=n-1; j>=0; j--){ cout<<a[j][i]<<" "; } cout<<endl; } }
  • 15.
    L. Bardeando Descripción Se tieneun conjunto de “n” trozos de malla ciclónica y un terreno de perímetro “P” el terreno es cuadrado. Problema Debes escribir un programa que nos diga cuántos metros de malla ciclonica nos hace falta para poder bardear el terreno. Entrada En la primera línea dos números “P” y "n", donde "P" representa el perímetro del terreno con un rango de valores de 1<=P <= 2,000,000,000 y “n” representa la cantidad de trozos de malla ciclónica que tenemos, donde 1<=n<=100,000. En las siguientes “n” líneas es el tamaño de cada trozo de malla que tenemos. La suma de todos los trozos siempre será menor a 2147483648. Salida Un único valor entero indicando los metros de malla que nos hacen falta para bardear el terreno. Ejemplos Entrada Salida Descripción 100 3 25 20 45 Caso #1 Entrada Salida Descripción 10 100 2 1000 2000 0 Caso #2 21 1 20 1 Caso #3 Consideraciones Tu programa se ejecutara con varios casos de prueba. #include<iostream> using namespace std; int main(){ int P,n,c,m=0,mc=0; cin>>P>>n; for (int i=0;i<n;i++){ cin>>c; m+=c; } mc=P-m; if(m>P){ cout<<0; }else cout<<mc<<endl; }
  • 16.
    M. Matriz Cuadrada Descripción DescripciónTenemos una matriz de “R” renglones por “C” columnas, donde podemos enumerar las casillas de la siguiente manera, la casilla 1,1 (renglón 1, columna 1), la casilla 1,2 (renglón 1, columna 2) y la casilla 1,3 (renglón 1, columna 3 ) serían respectivamente las posiciones 1, 2 y 3 como se puede ver en la figura, donde la casilla 1,1 es la esquina superior izquierda y la celda “R” x “C” es la celda ubicada en la esquina inferior derecha. En esta cuadrícula, podemos hacer preguntas de la forma, ¿que número está en la casilla 1,2 ? y su respuesta sería 2 otro ejemplo ¿qué número está en la celda 2,3? y su respuesta es 6. Problema Escribe un programa que dada las dimensiones de la cuadrícula responda una cantidad “P” de preguntas. Entrada En la primera línea dos valores indicando las dimensiones de la cuadrícula separados por un espacio ‘R’ cantidad de renglones donde 1<=R<=10000 y “C” cantidad de columnas donde 1<=C<=10000, En la tercera línea el número “P” cantidad de preguntas donde 1<=P<=10,000 y en las siguientes “P” líneas un par de coordenadas de la forma r, c, representando las coordenadas de cada pregunta en donde “r” indica el renglón 1<=r<=R y “c” la columna 1<=c<=C por cada pregunta. Salida Por cada pregunta debe escribir en cada línea el número de casilla que le corresponde. Consideraciones Tu programa se ejecutara con varios casos de prueba. Entrada Salida Descripción 3 3 3 1 1 2 2 3 3 1 5 9 Caso #1 3 1000 2 2 1 2 10 1001 2010 Caso #2 #include<iostream> using namespace std; int main(){ int r,c,p,r1; cin>>r>>c>>p; int a[p][2]; for( int i=0; i<p;i++){ for( int j=0; j<2;j++){ cin>>a[i][j]; } } for(int k=0;k<p;k++){ r=((a[k][0]-1)*c)+a[k][1]; cout<<endl<<endl; cout<<r<<" "; }
  • 17.
    N. Área deun rectángulo Descripción Se te darà la base y la altura de un rectángulo, deberás desplegar su área. Entrada Dós números b y a Salida La salida deberá ser el área del rectángulo Ejemplo 12 5 60 2 7 14 #include <iostream> using namespace std; int main() { int b,a,area; cin>>b; cin>>a; area=b*a; cout<<area<<endl; return 0; }
  • 18.
    O. Área deun triángulo Descripción Se te dará la base y la altura de un triángulo, deberás desplegar su área. Entrada Dós números b y a Salida La salida deberá ser el área del triángulo con dos decimales después del punto. Ejemplo 12 5 30.00 #include<iostream> #include<math.h> #include <stdio.h> #include <iomanip> using namespace std; main (){ float b,a; double area; cin>>b; cin>>a; area=(b*a)/2; cout<<fixed<<setprecision(2)<<area; }
  • 19.
    P. 1 Ordenaa los alumnos Descripción Los Chicos de la escuela van a recibir un premio, pero tienen que estar formados de la calificacion mayor a la menor, ya que el Profe Rayito quiere orden y dar el mejor premio a la mejor calificacion, y asi sucesivamente. Entrada Primero hay que pedir la cantidad de Alumnos y despues las calificaciones Salida Mostrar las calificaciones ordenadas del mayor al menor Ejemplo Entrada Salida Descripción 4 75 82 100 50 100 82 75 50 Cantidad de alumnos, y en la segunda linea las calificaciones #include <iostream> using namespace std; int main (){ int perro,ironman; cin>>perro; int* gato=new int[perro]; for(int leon=0; leon<perro; leon++) { cin>>gato[leon]; } cout<<endl<<endl; for(int leon=0; leon<perro; leon++) { for (int luna=1;luna<perro; luna++) { if (gato[luna]>gato[luna-1]) { ironman=gato[luna]; gato[luna]=gato[luna-1]; gato[luna-1]=ironman; } } } for(int luna=0; luna<perro; luna++) { cout<<gato[luna]<<" " } cout<<endl<<endl return 0;
  • 20.
    Q. Obtener promedio Descripción ELmaestro Melquiades quiere saber el promedio de calificaciones de su grupo, Por lo que tu como programador le ayudaras codificando un programita que le pida una cantidad de alumnos, y en seguida las calificaciones Entrada La cantidad de Alumnos y las "n" calificaciones en escala 0 al 100, sin decimales. Salida Mostrar el promedio con dos decimales. Ejemplo Entrada Salida Descripción 4 50 100 100 50 75.00 Pedir la Cantidad de alumnos, y las "n" calificaciones. Mostrar el promedio con dos decimales. #include<iostream> #include<math.h> #include <stdio.h> #include <iomanip> using namespace std; int main (){ int n,ironman; float suma,p,promedio; cin>>n; int* g=new int[n]; for(int l=1; l<n-1; l++) { } for(int i=1; i<=n; i++){ cin>>p; suma+=p; } promedio=suma/n; cout<<fixed<<setprecision(2)<<promedio; }
  • 21.
    R. El excursionistaMayor Descripción Los Falmos van de excursión, pero de todo el grupo de "humanitos" el que tiene la mayor edad es al que se le entregara el dinero para la compra del material de campamento. Ayudale a Mamá Falmo a saber quien es el que tiene la mayor edad. Entrada Preguntar cuantos van a ir de excursión, y la edad de cada uno. Salida Mostrar solo la edad mas grande. Ejemplo Entrada Salida Descripción 5 15 16 5 13 12 16 Pedir la cantidad de Excursionistas, y la edad de cada uno.Desplegar la Edad del mayor. Límites #include <iostream> using namespace std; int main() { int n,m=0; cin>>n; int* a=new int[n]; for(int i=0;i<n;i++){ a[i]=i+1; cin>>a[i]; if(a[i]>m){ m=a[i]; } } cout<<m<<endl; return 0; }
  • 22.
    S. Bisiesto Descripción Un añoes bisiesto si es divisible entre 4, a menos que sea divisible entre 100. Sin embargo, si un año es divisible entre 100 y además es divisible entre 400, también resulta bisiesto. Entrada La primera línea tendrá un número N, la cantidad de años por analizar. Después habrá N líneas con un solo número entero, que representa el año que tendrás que decidir si es o no bisiesto. Todos los años serán mayores a 1600 y menores a 3,000. Salida Por cada año de la entrada escribe una "S" o una "N", dependiendo de si el año es bisiesto o no respectivamente. Límites Ejemplo Entrada Salida 2 2011 2012 N S #include<iostream> using namespace std; int main (){ int n; cin>>n; int* a=new int[n]; for(int i=1; i<=n;i++){ cin>>a[n]; if(a[n]>1600 && a[n]<3000){ if (a[n]%4==0){ cout<<"S"<<endl; }else if (a[n]%100==0 && a[n]%400==0){ cout<<"S"<<endl; }else{ cout<<"N"<<endl; } } } } T. Figuras Rectangulares
  • 23.
    Descripción Tenemos un conjuntode cuadrados y rectángulos cuyos medidas de sus diferentes lados son cantidades enteras y mayores a 1 y , si tenemos el área de la figura, es posible que sea un cuadrado o un rectángulo. Problema Construye un programa que nos ayude a resolver este problema (dada el área de una figura determinar si es cuadrado o rectángulo), la lectura la debes hacer de la entrada estándar (teclado) y la escritura se debe hacer a la salida estándar (pantalla). Entrada La primera línea contendrá un número "N" entre 1 y 1,000,000,000, representando el área. Salida Una sola línea indicando la figura que se puede formar, si el área puede formar un cuadrado debes imprimir la palabra “cuadrado” si el área puede formar un rectángulo, debes imprimir la palabra “rectangulo” y si el área puede formar ambos debe imprimir la palabra “ambos” (note no hay acentos ni mayusculas), en caso de que no se pueda formar un cuadrado o rectángulo escriba "ninguno" Consideraciones Tu programa se ejecutara con varios casos de prueba. Tips también es divisible entre N/2 por tanto si probamos con el numero 2,estamos al mismo tiempo probando con el numero N/2. Entrada Salida 9 cuadrado 6 rectángulo 36 ambos #include<iostream> #include<math.h> using namespace std; int main(){ int n,raiz,rectangulo,cuadrado; cin>>n; raiz=sqrt(n); cuadrado=raiz*raiz; rectangulo=n/2*2; if(rectangulo==n && cuadrado==n){ cout<<"ambos"; }else if(rectangulo==n){ cout<<"rectangulo"; }else{ if(cuadrado==n){ cout<<"cuadrado"; }else cout<<"ninguno"; }
  • 24.
    U. Triángulo Descripción Un triánguloes formado por 3 segmentos (con valor entero) de recta unidos por sus extremos, sin embargo no todas las combinaciones de 3 segmentos pueden formar un triángulo. Problema Escriba un programa que dados 3 números que representan 3 segmentos de rectas, diga si pueden formar un triángulo rectángulo. Entrada En la primera línea 3 números “a”, “b” y “c” representando las longitudes de 3 segmentos de recta en un rango de entre 1 y 32,000. Salida Una sola línea en donde si es posible generar un triángulo rectángulo debes imprimir la hipotenusa, el cateto mayor y el cateto menor y si no es posible formar un triángulo rectángulo imprime la palabra “imposible”. Consideraciones Tu programa se evaluará con varios casos de prueba, para cada caso de prueba (entrada) Ejemplos Entrada Salida Descripci ón 1 1 1 imposible Caso #1 3 4 5 5 4 3 Caso #2 Consideraciones Tu programa se ejecutara con varios casos de prueba. Tips El teorema de Pitágoras la hipotenusa es igual a la raíz cuadrada de la suma de los cuadrados de sus catetos. ¿Es necesario hacer el cálculo de la raíz cuadrada? #include<iostream> using namespace std; int main(){ float a,b,c; cin>>a>>b>>c; if (a<(b+c)&& b<(a+c)){ cout<<c<<" "<<b<<" "<<a<<endl; }else cout<<"Imposible"; }
  • 25.
    V. Suma Triple Descripción Setiene la siguiente función f(n), formada por la suma de los tres números anteriores. f(1)=1 f(2)=1 f(3)=2 f(4)=4 f(5)=7 f(6)=13 f(7)=24 f(8)=44 f(9)=81 Note que f(1) = 1 ya que no tiene números anteriores, f(2)=1 ya que es el único número anterior, f(3) tiene solo 2 números anteriores y a partir de f(4) se da la suma de los tres números anteriores. Problema Escribe un programa que dado el valor de “n” escriba la serie correspondiente. Entrada Un solo renglón conteniendo el valor “n”donde 1<=n<=64. Salida Una sola línea mostrando la serie desde el número menor hasta el mayor cada número debe estar separado por un espacio. Tips Un entero 32 bits es capaz de almacenar la f(n) para n=60 #include <iostream> using namespace std; int main() { int n; cin>>n; long* a=new long[n]; a[0]=1; a[1]=1; a[2]=2; for (long i=3;i<n;i++) { a[i]=a[i-1]+a[i-2]+a[i-3]; } for(long m=0;m<n;m++){ cout<<a[m]<<" "; } return 0 Entrada Salida Descripción 4 1 1 2 4 Caso #1 6 1 1 2 4 7 13 Caso #2 9 1 1 2 4 7 13 24 44 81 Caso #3
  • 26.
    W. Deuda 2 Descripción Nuestroamigo Cope tiene un problema pues le debe algunas cosas a cierta persona con la cual no puede quedar mal, sin embargo dicha persona es muy mala con Cope y trata de hacer que le pague más de lo que le debe, para esto le dice que los intereses h an subido y pone mil cosas para cobrar de más pero del unico interes que se hablo fue al momento de comenzar la transacción. Ayud a a Cope a llevar un buen control de su deuda sabiendo cuanto debe ycuanto abona, se sabe que originalmente se indico los intere ses. Entrada En la primera línea tres números enteros I, N, M separados por un espacio representando el interes acordado(número entero que representa el interes) inicialmente, número de cosas que debe Cope y los pagos que hará respectivamente. Siguiente M líneas un entero representando el pago de Cope. Salida Un entero representando como finaliza la cuenta de Cope. Ejemplo Entrada Salida Descripción 0 10 2 3 6 1 Ninguna. Entrada Salida Descripción 100 10 2 3 6 11 Ninguna. #include <iostream> using namespace std; int main() { int i,n,m,c,a,g,suma=0; cin>>i>>n>>m; for(int i=0;i<m;i++) { cin>>c; suma+=c; } a=n-suma; g=a+i/n; cout<<g; return 0;
  • 27.
    Z. Cuadro mágico Descripción Dadoun tablero de tres filas por tres columnas con dígitos (1 a 9) en cada casilla, determina si se trata de un cuadrado mágico. En un cuadrado mágico la suma de los valores en cada fila, cada columna y cada diagonal, siempre es 15. Entrada Tres líneas, en cada línea tres dígitos separados por espacios. Salida Imprime SI, si se trata de un cuadrado mágico, NO en caso contrario. Ejemplo Entrada 6 1 8 7 5 3 2 9 4 Salida SI #include <iostream> using namespace std; int main (){ int a,b,c,d,e,f,g,h,i,suma1=0,suma2=0,suma3=0,suma4=0,suma5=0,suma6=0,suma7=0,suma8=0; cin>>a>>b>>c>>d>>e>>f>>g>>h>>i; suma1=a+b+c; suma2=d+e+f; suma3=g+h+i; suma4=a+d+g; suma5=b+e+h; suma6=c+f+i; suma7=a+e+i; suma8=c+e+g; if(suma1==15 && suma2==15 && suma3==15 && suma4==15 && suma5==15 && suma6==15 && suma7==1 5 && suma8==15){ cout<<"SI"<<endl; }else cout<<"NO"<<endl; } CUADERNO
  • 28.
    25.-10-0 Descripción Sin ingresar ningúnnúmero, Se ordenara del 10 al 0 Entrada Salida 10 9 8 7 6 5 4 3 2 1 #include <iostream> using namespace std; int main() { for(int n=10;n>=0;n--){ cout<<n<<endl; } } 26.-Factorial de un número Descripción Sacará el factorial del número que tú quieras #include <iostream> using namespace std; int main() { int n,fac=1; cin>>n; for(int i=1;i<=n;i++){ fac*=i, fac*1= } cout<<fac; } 27.-numeros impares Descripción Solicitaras un número y te saldrán solo los números impares Entrada y salida #include <iostream> using namespace std; int main() { int n; cin>>n; for (int v=1;v<n*2;v+=2){ cout<<v<<" "; } } 28.-Mayor de números
  • 29.
    Descripción Pondrás una seriede números y el resultado será el mayor número Entrada y salida 29.-1-100 #include <iostream> using namespace std; int main() { int n,p,mayor=0; cin>>n; for(int i=1;i<n;i++){ cin>>p; if(p>mayor) mayor=p; } cout<<"mayor"<<mayor<<endl; } Descripción Te pondrá la numeración completa del 1 al 100 Entrada y salida for(intj=1;j<100;j+=2){ cout<<j<<endl;} 30.-Par e Impar Descripción Una serie de números te dirá si es impar o par Entrada y salida #include <iostream> using namespace std; int main() { for (int i=1;i<=100;i++){ if(i%2==0){ cout<<i<<"par"<<endl; } else{ cout<<i<<"impar"<<endl; } }
  • 30.
  • 31.