目錄
範例範例3
解釋
問題陳述
方法
演算法
#範例:C程式
輸出
結論
首頁 後端開發 C++ 計算不具有給定前綴的N位數字的數量

計算不具有給定前綴的N位數字的數量

Sep 03, 2023 pm 07:53 PM
計算 前綴 數字數量

計算不具有給定前綴的N位數字的數量

這裡的問題是確定長度為N的字串中包含的字元'0'到'9'的總數,提​​供一個整數N和一個字串前綴數組pre[] ,使得這些字串中沒有任何一個包含提供的前綴。本文的目的是實現一個程序,找到不具有給定前綴的N位數的數量。

在C程式語言中,一組不同的字串稱為數組,因為數組是一組具有相似類型的資料片段的線性組合。

As we already know, the string is a character-by-character, one-dimensional array that ends with an empty or a null character.

範例範例1

讓我們假設輸入N = 2,

The given prefix, pre = {“1”}
登入後複製
Output obtained: 90
登入後複製

解釋

在這裡,除了{"01","10",“11”, “12”, “13", “14”, “15”, “16”, “17”, “18”, “19 ”, "21", "31", "41", "51", "61", "71", "81", "91"}之外的所有2位數字串都是有效的。

範例範例2

讓我們將輸入值 N = 3 作為範例。

The given prefix, pre = {“56”}
登入後複製
Output obtained: 990
登入後複製

解釋

在這裡,除了{"560", "561", “562”, “563", “564”, “565”, “566”, “567”, “568”, “569”}之外的所有3位數字字串都是有效的。

範例範例3

讓我們來看一個輸入N = 1,

The given prefix, pre = {“6”}
登入後複製
Output obtained: 9
登入後複製

解釋

除了{"6"}之外,這裡的所有1位數字串都是有效的。

問題陳述

實作一個程式來找出不具有給定前綴的N位數的數量。

方法

為了找到不帶給定前綴的N位數的數量,我們使用以下方法。

解決這個問題並找到不具有給定前綴的N位數的方法

考慮到字串中每個位置有10個字元選項,總共有(10N)個潛在字串。不要計算所需字串的總數,而是減去不需要的字串的總數。在迭代前將具有相同初始字元的前綴合併為較長的前綴可能會導致某些重複的刪除。

演算法

找到不具有以下給定前綴的N位數的計數演算法

  • 第一步 − 開始

  • 第二步 - 定義函數來計算長度為N的字串中不包含給定前綴的總數

  • #第三步 - 計算總共存在的字串

  • 第四步 - 建立一個陣列和計數器 a 和 aCount,並將這些前綴插入其中

  • #步驟 5 − 建立一個新的前綴字串陣列

  • #第6步 - 對於每個起始字元進行迭代

  • 第7步 - 迭代數組以計算最小大小的前綴

  • #第8步 - 現在將所有這些最小前綴放入新的前綴數組中

  • 第9步 - 迭代新的前綴

  • 第10步 - 扣除不需要的字串

  • 第11步 − 列印所得的結果

  • 第12步 − 停止

#範例:C程式

這是上述演算法的C程式實現,用於尋找不具有給定前綴的N位數的數量。

#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;
}
登入後複製

輸出

70000
登入後複製

結論

同樣地,我們可以找到不具有給定前綴的N位數的數量。

在這篇文章中,解決了獲取程式來找到不具有給定前綴的N位數的計數的挑戰。

這裡提供了C程式碼以及尋找不具有給定前綴的N位數字計數的演算法。

以上是計算不具有給定前綴的N位數字的數量的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
CUDA之通用矩陣乘法:從入門到熟練! CUDA之通用矩陣乘法:從入門到熟練! Mar 25, 2024 pm 12:30 PM

通用矩陣乘法(GeneralMatrixMultiplication,GEMM)是許多應用程式和演算法中至關重要的一部分,也是評估電腦硬體效能的重要指標之一。透過深入研究和優化GEMM的實現,可以幫助我們更好地理解高效能運算以及軟硬體系統之間的關係。在電腦科學中,對GEMM進行有效的最佳化可以提高運算速度並節省資源,這對於提高電腦系統的整體效能至關重要。深入了解GEMM的工作原理和最佳化方法,有助於我們更好地利用現代計算硬體的潛力,並為各種複雜計算任務提供更有效率的解決方案。透過對GEMM性能的優

word文檔怎麼計算加減乘除 word文檔怎麼計算加減乘除 Mar 19, 2024 pm 08:13 PM

WORD是一個強大的文字處理器,我們可以利用word進行各種文字的編輯,在Excel表格當中,我們已經熟練了加減乘數的運算方法,那麼如果需要在Word表格裡,計算數值的加減乘數,該如何操作呢,難道只能用計算機計算嗎?答案當然是否定的,WORD也同樣可以完成。今天小編就來教大家如何在Word文件的表格當中,運用公式計算加減乘除等基本運算,一起來學習一下吧。那麼,今天就讓小編具體示範一下,WORD文件怎麼計算加減乘除?第一步:開啟一個WORD,點選工具列【插入】下的【表格】,在下拉式選單當中插入一

如何使用Python的count()函數計算清單中某個元素的數量 如何使用Python的count()函數計算清單中某個元素的數量 Nov 18, 2023 pm 02:53 PM

如何使用Python的count()函數計算清單中某個元素的數量,需要具體程式碼範例Python作為一種強大且易學的程式語言,提供了許多內建函數來處理不同的資料結構。其中之一就是count()函數,它可以用來計算清單中某個元素的數量。在本文中,我們將詳細介紹如何使用count()函數,並提供具體的程式碼範例。 count()函數是Python的內建函數,用來計算某

使用行列式計算三角形面積的Java程序 使用行列式計算三角形面積的Java程序 Aug 31, 2023 am 10:17 AM

簡介使用行列式計算三角形面積的Java程序是一個簡潔且有效率的程序,可以根據給定三個頂點的座標來計算三角形的面積。該程式對於學習或使用幾何的任何人都非常有用,因為它演示瞭如何在Java中使用基本算術和代數計算,以及如何使用Scanner類讀取使用者輸入。程式提示使用者輸入三角形三個點的座標,然後將其讀入並用於計算座標矩陣的行列式。使用行列式的絕對值來確保面積始終為正,然後使用公式計算三角形的面積並顯示給使用者。該程式可以輕鬆修改以接受不同格式的輸入或執行附加計算,使其成為幾何計算的多功能工具。決定因素行列

在Java中遞歸地計算子字串出現的次數 在Java中遞歸地計算子字串出現的次數 Sep 17, 2023 pm 07:49 PM

給定兩個字串str_1和str_2。目標是使用遞歸過程計算字串str1中子字串str2的出現次數。遞歸函數是在其定義中呼叫自身的函數。如果str1是"Iknowthatyouknowthatiknow",str2是"know"出現次數為-3讓我們透過範例來理解。例如輸入str1="TPisTPareTPamTP",str2="TP";輸出Countofoccurrencesofasubstringrecursi

Excel如何快速加入前綴? Excel表格批次加上前綴的方法 Excel如何快速加入前綴? Excel表格批次加上前綴的方法 Mar 14, 2024 am 09:16 AM

  在編輯Excel時,可能需要為一列資料添加相同的前綴,如果一個一個地添加,實在是太浪費時間了,有什麼辦法可以為Excel批量添加前綴?當然是有的,下面就跟大家介紹幾個常用的加前綴的方法。  Excel如何快速加上前綴?  一、儲存格格式法  1、選取儲存格區域,同時按下Ctrl1,設定儲存格格式。 (或右鍵滑鼠,選擇設定儲存格格式)  2、點選【自訂】,在【類型】選項中輸入“財務部-@”,最後點選【確定】就可以完成囉!  二、插件法  1、下載安裝Excel插件方格子。  

如何使用C#中的Math.Pow函數計算指定數的冪次方 如何使用C#中的Math.Pow函數計算指定數的冪次方 Nov 18, 2023 am 11:32 AM

在C#中,有一個Math類別庫,其中包含許多數學函數。其中包括計算冪次方的函數Math.Pow,它可以幫助我們計算指定數的冪。 Math.Pow函數的用法非常簡單,只需要指定底數和指數就可以了。其語法如下:Math.Pow(base,exponent);其中base表示底數,exponent表示指數。此函數傳回double類型的結果,即冪次方的計算結果。下面讓

計算矩陣右對角線元素總和的Python程序 計算矩陣右對角線元素總和的Python程序 Aug 19, 2023 am 11:29 AM

一種受歡迎的通用程式語言是Python。它被應用於各種行業,包括桌面應用程式、網頁開發和機器學習。幸運的是,Python具有簡單易懂的文法,適合初學者使用。在本文中,我們將使用Python來計算矩陣的右對角線總和。什麼是矩陣?在數學中,我們使用一個矩形排列或矩陣,用於描述一個數學物件或其屬性,它是一個包含數字、符號或表達式的矩形數組或表格,這些數字、符號或表達式按行和列排列。例如−234512367574因此,這是一個有3行4列的矩陣,表示為3*4矩陣。現在,矩陣中有兩條對角線,即主對角線和次對

See all articles