


Comptez le nombre de nombres à N chiffres qui n'ont pas de préfixe donné
Le problème ici est de déterminer le nombre total de caractères « 0 » à « 9 » contenus dans une chaîne de longueur N, en fournissant un entier N et un tableau de préfixes de chaîne pre[] tel qu'il n'y en ait aucun dans ceux-ci. chaînes Un contenant le préfixe fourni. Le but de cet article est d'implémenter un programme qui trouve le nombre de nombres à N chiffres qui n'ont pas de préfixe donné.
En langage de programmation C, un ensemble de chaînes distinctes est appelé un tableau car un tableau est une combinaison linéaire d'un ensemble d'éléments de données de type similaire.
Comme nous le savons déjà, la chaîne est un tableau unidimensionnel caractère par caractère qui se termine par un caractère vide ou nul.
Exemple Exemple 1
Supposons l'entrée N = 2,
The given prefix, pre = {“1”}
Output obtained: 90
Explication
Ici, sauf {"01", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", Tous Les chaînes à 2 chiffres sauf "21", "31", "41", "51", "61", "71", "81", "91"} sont valides.
Exemple Exemple 2
Prenons la valeur d'entrée N = 3 comme exemple.
The given prefix, pre = {“56”}
Output obtained: 990
Explication
Ici, tout sauf {"560", "561", "562", "563", "564", "565", "566", "567", "568", "569"} chaînes à 3 chiffres sont tous valables.
Exemple Exemple 3
Regardons une entrée N = 1,
The given prefix, pre = {“6”}
Output obtained: 9
Explication
Toutes les chaînes à 1 chiffre ici sont valides sauf {"6"}.
Énoncé du problème
Implémentez un programme pour trouver le nombre de N chiffres qui n'ont pas de préfixe donné.
Méthode
Pour trouver le nombre de N chiffres sans donner de préfixe donné, on utilise la méthode suivante.
Solution à ce problème et trouver le chemin vers N nombre de chiffres qui n'a pas le préfixe donné
Considérant qu'il existe 10 options de caractères pour chaque position dans la chaîne, il y a (10N) chaînes potentielles au total. Au lieu de compter le nombre total de chaînes souhaitées, soustrayez le nombre total de chaînes dont vous ne voulez pas. La fusion de préfixes avec les mêmes caractères initiaux en un préfixe plus long avant l'itération peut entraîner la suppression de certains doublons.
Algorithme
Algorithme de recherche pour compter N chiffres qui n'ont pas le préfixe donné suivant
Première étape − Démarrer
Étape 2 - Définir une fonction pour compter le nombre total de chaînes de longueur N qui ne contiennent pas le préfixe donné
Étape 3 - Calculez le nombre total de chaînes existantes
Étape 4 - Créez un tableau et les compteurs a et aCount et insérez-y ces préfixes
Étape 5 − Créez un nouveau tableau de chaînes de préfixes
Étape 6 - Itérer pour chaque personnage de départ
Étape 7 - Parcourez le tableau pour calculer le préfixe de taille minimale
Étape 8 - Maintenant, mettez tous ces préfixes minimaux dans un nouveau tableau de préfixes
Étape 9 - Itérer sur de nouveaux préfixes
Étape 10 - Déduire les chaînes indésirables
Étape 11 − Imprimez les résultats obtenus
Étape 12 − Arrêtez
Exemple : programme C
Il s'agit d'une implémentation de programme C de l'algorithme ci-dessus pour trouver le nombre de N chiffres qui n'ont pas de préfixe donné.
#include <stdio.h> #include <math.h> #include <string.h> #define MAX_LENGTH 10 // Function to calculate total strings of length N without the given prefixes int totalStrings(int N, char pre[][MAX_LENGTH], int pre_Count){ // Calculate total strings present int total = (int)(pow(10, N) + 0.5); // Make an array and counter a and aCount respectively and insert these prefixes with same character in the array char a[10][MAX_LENGTH]; int aCount[10] = {0}; for (int i = 0; i < pre_Count; i++) { int index = pre[i][0] - '0'; strcpy(a[index] + aCount[index] * MAX_LENGTH, pre[i]); aCount[index]++; } // Make a new array of prefixes strings char new_pre[pre_Count][MAX_LENGTH]; int new_pre_count = 0; // Iterating for each of the starting //character for (int x = 0; x < 10; x++){ int m = N; // Iterate over the array to calculate minimum size prefix for (int j = 0; j < aCount[x]; j++){ int p_length = strlen(a[x] + j * MAX_LENGTH); m = (m < p_length) ? m : p_length; } // now take all these minimum prefixes in the new array of prefixes for (int j = 0; j < aCount[x]; j++){ int p_length = strlen(a[x] + j * MAX_LENGTH); if (p_length <= m){ strcpy(new_pre[new_pre_count], a[x] + j * MAX_LENGTH); new_pre_count++; } } } // Iterating through the new prefixes for (int i = 0; i < new_pre_count; i++){ // Subtract the unwanted strings total -= (int)(pow(10, N - strlen(new_pre[i])) + 0.5); } return total; } // The main function int main(){ int N = 5; char pre[][MAX_LENGTH] = {"1", "0", "2"}; int pre_Count = sizeof(pre) / sizeof(pre[0]); printf("%d\n", totalStrings(N, pre, pre_Count)); return 0; }
Sortie
70000
Conclusion
De même, nous pouvons trouver le nombre de N chiffres qui n'ont pas le préfixe donné.
Dans cet article, le défi consistant à faire en sorte qu'un programme trouve un nombre à N chiffres qui n'a pas de préfixe donné est résolu.
Le code de programmation C est fourni ici avec l'algorithme pour trouver le nombre de nombres à N chiffres qui n'ont pas de préfixe donné.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Il existe quatre bibliothèques XML couramment utilisées dans C: TinyXML-2, PUGIXML, XERCES-C et RapidXML. 1.Tinyxml-2 convient aux environnements avec des ressources limitées, des fonctions légères mais limitées. 2. PUGIXML est rapide et prend en charge la requête XPath, adaptée aux structures XML complexes. 3.xerces-C est puissant, prend en charge la résolution DOM et SAX et convient au traitement complexe. 4. RapidXML se concentre sur les performances et les analyses extrêmement rapidement, mais ne prend pas en charge les requêtes XPath.

C interagit avec XML via des bibliothèques tierces (telles que TinyXML, PUGIXML, XERCES-C). 1) Utilisez la bibliothèque pour analyser les fichiers XML et les convertir en structures de données propices à C. 2) Lors de la génération de XML, convertissez la structure des données C au format XML. 3) Dans les applications pratiques, le XML est souvent utilisé pour les fichiers de configuration et l'échange de données afin d'améliorer l'efficacité du développement.

Les principales différences entre C # et C sont la syntaxe, les performances et les scénarios d'application. 1) La syntaxe C # est plus concise, prend en charge la collection des ordures et convient au développement .NET Framework. 2) C a des performances plus élevées et nécessite une gestion manuelle de la mémoire, qui est souvent utilisée dans la programmation système et le développement de jeux.

L'histoire et l'évolution de C # et C sont uniques, et les perspectives d'avenir sont également différentes. 1.C a été inventé par Bjarnestrousstrup en 1983 pour introduire une programmation orientée objet dans le langage C. Son processus d'évolution comprend plusieurs normalisations, telles que C 11, introduisant des mots clés automobiles et des expressions de lambda, C 20 introduisant les concepts et les coroutines, et se concentrera sur les performances et la programmation au niveau du système à l'avenir. 2.C # a été publié par Microsoft en 2000. Combinant les avantages de C et Java, son évolution se concentre sur la simplicité et la productivité. Par exemple, C # 2.0 a introduit les génériques et C # 5.0 a introduit la programmation asynchrone, qui se concentrera sur la productivité et le cloud computing des développeurs à l'avenir.

Il existe des différences significatives dans les courbes d'apprentissage de l'expérience C # et C et du développeur. 1) La courbe d'apprentissage de C # est relativement plate et convient au développement rapide et aux applications au niveau de l'entreprise. 2) La courbe d'apprentissage de C est raide et convient aux scénarios de contrôle haute performance et de bas niveau.

Il existe des différences significatives dans la façon dont C # et C implémentent et les fonctionnalités de la programmation orientée objet (POO). 1) La définition de classe et la syntaxe de C # sont plus concises et prennent en charge des fonctionnalités avancées telles que LINQ. 2) C fournit un contrôle granulaire plus fin, adapté à la programmation système et aux besoins élevés de performance. Les deux ont leurs propres avantages et le choix doit être basé sur le scénario d'application spécifique.

La conversion de XML en C et la réalisation des opérations de données peuvent être réalisées via les étapes suivantes: 1) Analyser des fichiers XML à l'aide de la bibliothèque TinyxML2, 2) Mappage des données en structure de données de C, 3) à l'aide de la bibliothèque standard C telle que STD :: vector pour les opérations de données. Grâce à ces étapes, les données converties à partir de XML peuvent être traitées et manipulées efficacement.

C # utilise le mécanisme de collecte automatique des ordures, tandis que C utilise la gestion manuelle de la mémoire. 1. Le collecteur des ordures de C # gère automatiquement la mémoire pour réduire le risque de fuite de mémoire, mais peut entraîner une dégradation des performances. 2.C fournit un contrôle de mémoire flexible, adapté aux applications qui nécessitent une gestion des beaux, mais doivent être manipulées avec prudence pour éviter les fuites de mémoire.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Dreamweaver CS6
Outils de développement Web visuel

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP