Preguntas diarias (noventa y tres)
Programando con Obama
Descripción del Título
El presidente de los Estados Unidos, Barack Obama, no solo pidió a todos que aprendan a programar, sino que incluso dio un ejemplo para escribir código, convirtiéndose en el primer presidente en la historia de Estados Unidos en escribir código de computadora. A fines de 2014, para celebrar el lanzamiento oficial de la "Semana de la Educación en Ciencias de la Computación", Obama escribió un código de computadora muy simple: dibuje un cuadrado en la pantalla. ¡Ahora también puedes pintar con él!
Formato de entrada
La entrada da la longitud del lado N del cuadrado (3≤N≤20) y algunos caracteres C que forman los lados del cuadrado en una línea, separados por un espacio.
Formato de salida
Imprima el cuadrado dibujado por el carácter C dado. Pero observe que el espaciado entre filas es mayor que el espaciado entre columnas, por lo que para que el resultado parezca más cuadrado, el número de filas que generamos es en realidad el 50% del número de columnas (redondeado hacia arriba).
Muestra de entrada
10 a
Salida de muestra
aaaaaaaaaa
a a
a a
a a
aaaaaaaaaa
Código C ++:
#include<iostream>
using namespace std;
int main()
{
float n;
char c;
cin >> n >> c;
int row;
row = (int)((n / 2.0) + 0.5);
for(int i = 0; i < row; i++)
{
for(int j = 0; j < n; j++)
{
if(i > 0 && i < row - 1 && j > 0 && j < n - 1 )
{
cout << ' ';
}
else
{
cout << c;
}
}
cout << '\n';
}
return 0;
}
Los resultados de la operación de muestra son los siguientes:
Me gusta ser popular, jajajajaja
Método 2: Método de paridad
#include<cstdio>
int main()
{
int row, col;
char c;
scanf("%d %c", &col, &c);
if(col % 2 == 1)
row = col / 2 + 1;
else
row = col / 2;
for(int i = 0; i < col; i++)
{
printf("%c", c);
}
printf("\n");
for(int i = 2; i < row; i++)
{
printf("%c", c);
for(int j = 0; j < col - 2; j++)
{
printf(" ");
}
printf("%c\n", c);
}
for(int i = 0; i < col; i++)
{
printf("%c", c);
}
return 0;
}
Pregunta C: Qsort de clasificación rápida [2 *]
Descripción del Título
Ingrese n números enteros y use el método de clasificación rápida para ordenar
ingresar
El número n en la primera línea significa que hay n números enteros en las
siguientes n líneas, cada línea tiene un número entero
Producción
Resultados de clasificación de salida en orden ascendente,
un dato por fila
Muestra de entrada
5
12
18
14
13
16
Salida de muestra
12
13
14
16
18
Código C ++ (primera versión):
#pragma warning(disable:4996);
#include<bits/stdc++.h>
using namespace std;
int a[100005];
int Partition(int a[], int left, int right)
{
int temp = a[left];
while (left < right) {
while (left<right && a[right]>temp) right--;
a[left] = a[right];
while (left<right && a[left]<=temp) left++;
a[right] = a[left];
}
a[left] = temp;
return left;
}
void QuickSort(int a[], int left, int right)
{
if(left < right)
{
int pos = Partition(a, left, right);
QuickSort(a, left, pos - 1);
QuickSort(a, pos + 1, right);
}
}
int main()
{
int n;
while(cin >> n)
{
for(int i = 1; i <= n; i++)
{
cin >> a[i];
}
QuickSort(a, 1, n);
for(int i = 1; i <= n; i++)
{
cout << a[i] << endl;
}
}
return 0;
}
Código C ++ (segunda versión):
#include<bits/stdc++.h>
using namespace std;
int a[100005];
int Partition(int a[], int left, int right)
{
int p = (round(1.0 * rand() / RAND_MAX * (right - left) + left));
int t = a[p];
a[p] = a[left];
a[left] = t;
int temp = a[left];
while(left < right)
{
while(left < right && a[right] > temp)
{
right--;
}
a[left] = a[right];
while(left < right && a[left] < temp)
{
left++;
}
a[right] = a[left];
}
a[left] = temp;
return left;
}
void QuickSort(int a[], int left, int right)
{
if(left < right)
{
int pos = Partition(a, left, right);
QuickSort(a, left, pos - 1);
QuickSort(a, pos + 1, right);
}
}
int main()
{
int n;
while(cin >> n)
{
for(int i = 1; i <= n; i++)
{
cin >> a[i];
}
QuickSort(a, 1, n);
for(int i = 1; i <= n; i++)
{
cout << a[i] << endl;
}
}
return 0;
}
Código C:
#pragma warning(disable:4996);
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<time.h>
#include<stdlib.h>
using namespace std;
int a[100005];
int partition(int a[], int left, int right) {
int temp = a[left];
while (left < right) {
while (left<right && a[right]>temp) right--;
a[left] = a[right];
while (left<right && a[left]<=temp) left++;
a[right] = a[left];
}
a[left] = temp;
return left;
}
void quicksort(int a[], int left, int right) {
if (left < right) {
int pos = partition(a, left, right);
quicksort(a, left, pos - 1);
quicksort(a, pos + 1, right);
}
}
int main() {
int n;
while (scanf("%d", &n) != EOF) {
for (int i = 0;i < n;i++)
{
scanf("%d", &a[i]);
}
quicksort(a, 0, n - 1);
for (int i = 0;i < n;i++) {
printf("%d\n", a[i]);
}
}
return 0;
}