Problème 1 : Calcul de Produit
Description
Étant donné un ensemble d'entiers positifs, calculez leur produit. Si le produit dépasse 1 000 000, affichez ">1000000". Sinon, affichez le produit calculé.
Entrée
La première ligne contient un entier n, le nombre d'entiers. Les n lignes suivantes contiennent chacune un entier a.
Sortie
Affichez ">1000000" si le produit dépasse 1 000 000, sinon affichez le produit.
Exemple d'entrée
2
3
5
Exemple de sortie
15
Étiquettes d'algorithme
Boucles, GESP, 2024
Détails du code
Voici une implémentation en C++ utilisnat une approche itérative pour calculer le produit et vérifier la limite.
#include <iostream>
int main() {
int count;
std::cin >> count;
long long product = 1; // Utiliser long long pour éviter le dépassement précoce
const long long limit = 1000000;
for (int i = 0; i < count; ++i) {
int number;
std::cin >> number;
product *= number;
if (product > limit) {
std::cout << ">1000000" << std::endl;
return 0;
}
}
std::cout << product << std::endl;
return 0;
}
Résultat de l'exécution (Exemple)
2
3
5
15
Problème 2 : Matrice en forme de "日"
Description
Construire une matrice N×N (où N est un nombre impair) remplie de caractères. Les colonnes les plus à gauche et à droite sont des '|'. La première ligne, la dernière ligne et la ligne du milieu ( (N+1)/2 -ième ligne) contiennent des '-' dans les positions intermédiaires. Toutes les autres positions sont remplies avec 'x'.
Entrée
Un entier N (5 ≤ N ≤ 49, N est impair).
Sortie
La matrice "日" correspondante. La sortie doit être exacte, sans espaces ni lignes vides supplémentaires.
Exemple d'entrée
5
Exemple de sortie
|---|
|xxx|
|---|
|xxx|
|---|
Étiquettes d'algorithme
Boucles, GESP, 2024
Détails du code
Ce code C++ génère la matrice en itérant sur chaque cellule et en appliquant les règles de remplissage.
#include <iostream>
#include <vector>
int main() {
int n;
std::cin >> n;
// Utilisation d'un vecteur de chaînes pour représenter la matrice
std::vector<std::string> matrix(n, std::string(n, ' '));
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
// Colonnes extérieures
if (j == 0 || j == n - 1) {
matrix[i][j] = '|';
}
// Lignes spécifiques (début, fin, milieu)
else if (i == 0 || i == n - 1 || i == (n - 1) / 2) {
matrix[i][j] = '-';
}
// Reste des cellules
else {
matrix[i][j] = 'x';
}
}
}
// Affichage de la matrice
for (int i = 0; i < n; ++i) {
std::cout << matrix[i] << std::endl;
}
return 0;
}
Résultat de l'exécution (Exemple)
5
|---|
|xxx|
|---|
|xxx|
|---|