suchen
HeimBackend-EntwicklungC++Zählen Sie die Anzahl der N-stelligen Nummern, die kein bestimmtes Präfix haben

Zählen Sie die Anzahl der N-stelligen Nummern, die kein bestimmtes Präfix haben

Das Problem hierbei besteht darin, die Gesamtzahl der Zeichen „0“ bis „9“ zu bestimmen, die in einer Zeichenfolge der Länge N enthalten sind, indem eine Ganzzahl N und ein Zeichenfolgenpräfix-Array pre[] bereitgestellt werden, sodass es keine Eins gibt, die das enthält bereitgestelltes Präfix. Der Zweck dieses Artikels besteht darin, ein Programm zu implementieren, das die Anzahl der N-stelligen Zahlen ermittelt, die kein bestimmtes Präfix haben.

In der Programmiersprache C wird ein Satz unterschiedlicher Zeichenfolgen als Array bezeichnet, da ein Array eine lineare Kombination eines Satzes von Datenstücken ähnlichen Typs ist.

Wie wir bereits wissen, handelt es sich bei der Zeichenfolge um ein zeichenweises, eindimensionales Array, das mit einem Leer- oder Nullzeichen endet.

Beispiel Beispiel 1

Nehmen wir an, dass die Eingabe N = 2 ist,

The given prefix, pre = {“1”}
Output obtained: 90

Erklärung

Hier, außer {"01", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", Alle 2-stellige Zeichenfolgen außer „21“, „31“, „41“, „51“, „61“, „71“, „81“, „91“} sind gültig.

Beispiel Beispiel 2

Nehmen wir als Beispiel den Eingabewert N = 3.

The given prefix, pre = {“56”}
Output obtained: 990

Erklärung

Hier alles außer {"560", "561", "562", "563", "564", "565", "566", "567", "568", "569"} dreistellige Zeichenfolgen sind alle gültig.

Beispiel Beispiel 3

Sehen wir uns eine Eingabe N = 1 an,

The given prefix, pre = {“6”}
Output obtained: 9

Erklärung

Alle einstelligen Zeichenfolgen hier sind gültig, außer {"6"}.

Problemstellung

Implementieren Sie ein Programm, um die Anzahl der N-stelligen Zahlen zu ermitteln, die kein bestimmtes Präfix haben.

Methode

Um die Anzahl der N Ziffern ohne Angabe eines bestimmten Präfixes zu ermitteln, verwenden wir die folgende Methode.

Lösen Sie dieses Problem und finden Sie den Weg zu N Ziffern, die nicht das angegebene Präfix haben

Wenn man bedenkt, dass es für jede Position in der Zeichenfolge 10 Zeichenoptionen gibt, gibt es insgesamt (10N) potenzielle Zeichenfolgen. Anstatt die Gesamtzahl der gewünschten Zeichenfolgen zu zählen, subtrahieren Sie die Gesamtzahl der nicht gewünschten Zeichenfolgen. Das Zusammenführen von Präfixen mit denselben Anfangszeichen zu einem längeren Präfix vor der Iteration kann dazu führen, dass einige Duplikate entfernt werden.

Algorithmus

Suchalgorithmus zum Zählen von N Ziffern, der nicht das folgende Präfix hat

  • Erster Schritt − Start

  • Schritt 2 – Funktion definieren, um die Gesamtzahl der Zeichenfolgen der Länge N zu zählen, die das angegebene Präfix nicht enthalten

  • Schritt 3 – Berechnen Sie die Gesamtzahl der vorhandenen Strings

  • Schritt 4 – Erstellen Sie ein Array und die Zähler a und aCount und fügen Sie diese Präfixe darin ein

  • Schritt 5 - Erstellen Sie ein neues Präfix-String-Array

  • Schritt 6 – Iterieren Sie für jedes Startzeichen

  • Schritt 7 – Durchlaufen Sie das Array, um das Präfix mit der Mindestgröße zu berechnen

  • Schritt 8 – Fügen Sie nun alle diese minimalen Präfixe in ein neues Präfix-Array ein

  • Schritt 9 – Über neue Präfixe iterieren

  • Schritt 10 – Unerwünschte Zeichenfolgen abziehen

  • Schritt 11 − Drucken Sie die erhaltenen Ergebnisse aus

  • Schritt 12 − Stopp

Beispiel: C-Programm

Dies ist eine C-Programmimplementierung des obigen Algorithmus, um die Anzahl der N Ziffern zu ermitteln, die kein bestimmtes Präfix haben.

#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;
}

Ausgabe

70000

Fazit

Ähnlich können wir die Anzahl der N Ziffern ermitteln, die nicht das angegebene Präfix haben.

In diesem Beitrag wird die Herausforderung gelöst, ein Programm dazu zu bringen, eine N-stellige Anzahl zu finden, die kein bestimmtes Präfix hat.

C-Programmiercode wird hier zusammen mit dem Algorithmus bereitgestellt, um die Anzahl der N-stelligen Zahlen zu ermitteln, die kein bestimmtes Präfix haben.

Das obige ist der detaillierte Inhalt vonZählen Sie die Anzahl der N-stelligen Nummern, die kein bestimmtes Präfix haben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:tutorialspoint. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
MySQL中如何使用SUM函数计算某个字段的总和MySQL中如何使用SUM函数计算某个字段的总和Jul 13, 2023 pm 10:12 PM

MySQL中如何使用SUM函数计算某个字段的总和在MySQL数据库中,SUM函数是一个非常有用的聚合函数,它可以用于计算某个字段的总和。本文将介绍如何在MySQL中使用SUM函数,并提供一些代码示例来帮助读者深入理解。首先,让我们看一个简单的示例。假设我们有一个名为"orders"的表,其中包含了顾客的订单信息。表结构如下:CREATETABLEorde

新研究揭示量子蒙特卡洛超越神经网络在突破限制方面的潜力,Nature子刊详述最新进展新研究揭示量子蒙特卡洛超越神经网络在突破限制方面的潜力,Nature子刊详述最新进展Apr 24, 2023 pm 09:16 PM

时隔四个月,ByteDanceResearch与北京大学物理学院陈基课题组又一合作工作登上国际顶级刊物NatureCommunications:论文《TowardsthegroundstateofmoleculesviadiffusionMonteCarloonneuralnetworks》将神经网络与扩散蒙特卡洛方法结合,大幅提升神经网络方法在量子化学相关任务上的计算精度、效率以及体系规模,成为最新SOTA。论文链接:​​https://www.nature.com

计算矩阵右对角线元素之和的Python程序计算矩阵右对角线元素之和的Python程序Aug 19, 2023 am 11:29 AM

一种受欢迎的通用编程语言是Python。它被应用于各种行业,包括桌面应用程序、网页开发和机器学习。幸运的是,Python具有简单易懂的语法,适合初学者使用。在本文中,我们将使用Python来计算矩阵的右对角线之和。什么是矩阵?在数学中,我们使用一个矩形排列或矩阵,用于描述一个数学对象或其属性,它是一个包含数字、符号或表达式的矩形数组或表格,这些数字、符号或表达式按行和列排列。例如−234512367574因此,这是一个有3行4列的矩阵,表示为3*4矩阵。现在,矩阵中有两条对角线,即主对角线和次对

Nature刊登量子计算重大进展:有史以来第一个量子集成电路实现Nature刊登量子计算重大进展:有史以来第一个量子集成电路实现Apr 08, 2023 pm 09:01 PM

6 月 23 日,澳大利亚量子计算公司 SQC(Silicon Quantum Computing)宣布推出世界上第一个量子集成电路。这是一个包含经典计算机芯片上所有基本组件的电路,但体量是在量子尺度上。SQC 团队使用这种量子处理器准确地模拟了一个有机聚乙炔分子的量子态——最终证明了新量子系统建模技术的有效性。「这是一个重大突破,」SQC 创始人 Michelle Simmons 说道。由于原子之间可能存在大量相互作用,如今的经典计算机甚至难以模拟相对较小的分子。SQC 原子级电路技术的开发将

面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能Apr 29, 2023 am 08:34 AM

阿里云机器学习平台PAI与华东师范大学高明教授团队合作在SIGIR2022上发表了结构感知的稀疏注意力Transformer模型SASA,这是面向长代码序列的Transformer模型优化方法,致力于提升长代码场景下的效果和性能。由于self-attention模块的复杂度随序列长度呈次方增长,多数编程预训练语言模型(Programming-basedPretrainedLanguageModels,PPLM)采用序列截断的方式处理代码序列。SASA方法将self-attention的计算稀疏化

Michael Bronstein从代数拓扑学取经,提出了一种新的图神经网络计算结构!Michael Bronstein从代数拓扑学取经,提出了一种新的图神经网络计算结构!Apr 09, 2023 pm 10:11 PM

本文由Cristian Bodnar 和Fabrizio Frasca 合著,以 C. Bodnar 、F. Frasca 等人发表于2021 ICML《Weisfeiler and Lehman Go Topological: 信息传递简单网络》和2021 NeurIPS 《Weisfeiler and Lehman Go Cellular: CW 网络》论文为参考。本文仅是通过微分几何学和代数拓扑学的视角讨论图神经网络系列的部分内容。从计算机网络到大型强子对撞机中的粒子相互作用,图可以用来模

使用Python的abs()函数计算数值的绝对值使用Python的abs()函数计算数值的绝对值Aug 22, 2023 pm 12:07 PM

使用Python的abs()函数计算数值的绝对值绝对值是一个数与零点的距离,无论这个数是正数还是负数,其绝对值都是非负数。在Python中,我们可以使用内置函数abs()来计算一个数的绝对值。本文将详细介绍abs()函数的使用方法,并给出一些代码示例。abs()函数的语法如下:abs(x)其中,x是需要计算绝对值的数值。下面是一些使用abs()函数的示例:示

清华大学类脑芯片天机芯X登Science子刊封面,机器人版猫捉老鼠上演清华大学类脑芯片天机芯X登Science子刊封面,机器人版猫捉老鼠上演Apr 14, 2023 pm 05:01 PM

​清华大学举办的一场机器人版猫捉老鼠游戏,登上了Science子刊封面。这里的汤姆猫有了新的名字:“天机猫”,它搭载了清华大学类脑芯片的最新研究成果——一款名为TianjicX的28nm神经形态计算芯片。它的任务是抓住一只随机奔跑的电子老鼠:在复杂的动态环境下,各种障碍被随机地、动态地放置在不同的位置,“天机猫”需要通过视觉识别、声音跟踪或两者结合的方式来追踪老鼠,然后在不与障碍物碰撞的情况下向老鼠移动,最终追上它。在此过程中,“天机猫”需要实现实时场景下的语音识别、声源定位、目标检测、避障和决

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)