计算不具有给定前缀的N位数字的数量

计算不具有给定前缀的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 #include #include #define MAX_LENGTH 10// Function to calculate total strings of length N without the given prefixesint 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 functionint main(){   int N = 5;   char pre[][MAX_LENGTH] = {"1", "0", "2"};   int pre_Count = sizeof(pre) / sizeof(pre[0]);   printf("%dn", totalStrings(N, pre, pre_Count));   return 0;}

输出

70000

结论

同样地,我们可以找到不具有给定前缀的N位数的数量。

在这篇文章中,解决了获取程序来找到不具有给定前缀的N位数的计数的挑战。

这里提供了C编程代码以及查找不具有给定前缀的N位数字计数的算法。

以上就是计算不具有给定前缀的N位数字的数量的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1444326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 21:22:15
下一篇 2025年12月17日 21:22:33

相关推荐

  • css属性为什么要加前缀

    css属性加前缀的原因:虽然浏览器厂商以前就一直在实施css3,但它还并未成为真正的标准。因此当一些css3样式语法存在波动时,它们就需要提供针对浏览器的前缀。 原因分析: 虽然浏览器厂商以前就一直在实施CSS3,但它还未成为真正的标准。为此,当一些CSS3样式语法还存在波动时,它们就需要提供针对浏…

    2025年12月24日
    000
  • 关于如何解决css3中calc在less编译时被计算的办法

    这篇文章主要介绍了浅谈css3中calc在less编译时被计算的解决办法的相关资料,内容挺不错的,现在分享给大家,也给大家做个参考。 对于前端er来说,Less或Sass已经是一项必备的基本技能,有了这个利器,可以省下前端开发者的很多编码时间,让你写CSS如行云流水一般,然后最近我在Less里加入c…

    好文分享 2025年12月24日
    000
  • 如何使用CSS3中的calc()属性来表达尺寸

    这篇文章主要介绍了关于如何使用css3中的calc()属性来表达尺寸,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 calc()的用法十分巧妙,可以像我们在学校做数学应用题那样列式子来计算长度宽度等值,从而一定程度上实现自适应布局,下面我们就来介绍如何使用CSS3中的calc()属性…

    好文分享 2025年12月24日
    000
  • 计算一个数的阶乘中末尾零的个数的C/C++编程?

    计算阶乘数中末尾零的个数是通过计算该数的因子中2和5的个数来完成的。因为2*5等于10,而10是阶乘数中的末尾零。 示例 7的阶乘=5040,末尾0的个数为1。 根据我们的逻辑,7!=2*3*4*5*6*7,它有3个2和1个5,所以末尾0的个数为1。 #include using namespace…

    2025年12月17日
    000
  • 计算最大公因数的C++程序

    最高公因数或最大公约数是能够在不产生任何余数的情况下,能够同时整除两个或多个值的因数。在本文中,我们将讨论在C++中执行两个数字的HCF / GCD的几种方法。 这只是一个数学解决方案,有几种算法可以找到最大公约数。欧几里得方法是常见的找到最大公约数的方法。我们将在迭代模式和递归模式下使用相同的算法…

    2025年12月17日
    000
  • 如何在C语言中计算可变数量的参数?

    在本节中,我们将了解在 C 中参数数量可变的情况下如何计算参数数量。 C 支持省略号。这用于将可变数量的参数传递给函数。用户可以使用三种不同方式之一对参数进行计数。 通过传递第一个参数作为参数计数 将最后一个参数作为 NULL 传递。 立即学习“C语言免费学习笔记(深入)”; 使用 printf()…

    2025年12月17日
    000
  • C++程序,用于计算数组元素大于其左侧所有元素且至少有K个元素在其右侧的数量

    字符串是一个对象,它表示数据字符的序列。字符串是始终表示为文本格式的数据容器。它还用于概念、比较、拆分、连接、替换、修剪、长度、实习、等于、比较、子字符串操作。使用快速排序分区算法的数组中的 K 个最大(或最小)元素。 这是一个数组 R[],其中包含 N 个不同的整数。任务是找到那个特定元素,该元素…

    2025年12月17日
    000
  • 计算通过交换给定数组中字符串对的第一个字符而得到的新字符串对的数量

    在这个问题中,我们需要选择一对字符串并交换它们的第一个字符。之后,我们需要计算新对的总数。我们可以通过交换每对的第一个字符并检查它是否存在于数组中来解决这个问题。 解决这个问题的高效方法是使用哈希映射数据结构。 问题陈述 – 我们有一个包含N个字符串的数组。我们可以从所有数组元素中选择任…

    2025年12月17日
    000
  • C++程序用于计算使数字n变为1所需的最小操作次数

    假设我们有一个数字n。我们任意执行这些操作之一 – 当 n 可被 2 整除时,将 n 替换为 n/2 当 n 可被 3 整除时,将 n 替换为 2n/3 当 n 可被 5 整除时,将 n 替换为 4n/5 立即学习“C++免费学习笔记(深入)”; li> 我们必须计算出数字 1 所…

    2025年12月17日
    100
  • C++程序:计算使所有礼物数量相等的操作次数

    假设我们有两个数组 A 和 B,每个数组的大小为 n。有n份礼物,我们想把它们送给一些孩子。第 i 份礼物有 A[i] 颗糖果和 B[i] 个橙子。在一次移动过程中,我们可以选择一些礼物并执行以下操作之一 – 从该礼物中取出一颗糖果(如果有); p> 从这份礼物中取出一颗橙子(如果…

    2025年12月17日
    000
  • 两两乘积之和

    集合X = {a, b, c}的成对乘积可以定义为所有可能的集合对乘积的和。集合的成对为Y = {a * a, a * b, a *c, b * b, b * c, c * c},其中乘积是可交换的。因此,集合X的成对乘积是集合Y的元素之和,即aa + ab + ac + bb + bc + cc。…

    2025年12月17日
    000
  • C程序用于计算等比数列的第N项

    Given ‘a’ the First term, ‘r’ the common ratio and ‘n’ for the number of terms in a series. The task is to find the nth term of the series. So, before…

    2025年12月17日
    000
  • 如何使用指针在C语言中计算数组元素的总和?

    指针是一个存储其他变量地址的变量。 考虑以下语句 – int qty = 179; 声明指针 h2> 声明指针的语法如下 – int *p; 这里,’p’是一个指针变量,它保存其他变量的地址。 立即学习“C语言免费学习笔记(深入)”; 指针的初始…

    2025年12月17日
    000
  • 如何在C语言中计算浮点数中的位数?

    在此问题中,给出了一个浮点值。我们必须找到它的二进制表示中的设置位的数量。 例如,如果浮点数是0.15625,则有六个设置位。典型的 C 编译器使用单精度浮点表示。所以它看起来像这样。 要转换为位值,我们必须将数字放入一个指针变量中,然后将指针强制转换为 char* 类型数据。然后对每个字节进行一一…

    2025年12月17日
    000
  • C++程序计算矩阵对角线之和

    The utilization of 2-dimensional arrays or matrices is extremely advantageous for severalapplications. Matrix rows and columns are used to hold number…

    2025年12月17日
    100
  • 计算给定值的以10为底的对数的C++程序

    各种应用中的自然计算相对需要以 10 为底的对数。对于竞争性考试,有一些快速方法可以记住一些日志值。在编程时,有几种使用库函数计算对数结果的方法以及一些快捷方式。在这篇文章中,我们将介绍几种在 C++ 中计算给定数字的以 10 为底的对数的方法。 使用 log10() 函数 用于确定给定参数的以 1…

    2025年12月17日
    000
  • 计算三个不重叠的子字符串,将它们连接起来形成一个回文串

    简介 在本教程中,我们将详细阐述一种从给定字符串 s 中查找三个不重叠子字符串的方法,并且当所有子字符串组合在一起时,它们形成一个回文。为了解决此任务,我们使用 C++ 编程语言的字符串类功能。 字符串中的回文表示该字符串在向前和向后方向上读起来都相同。回文字符串示例是 Madam。 假设有一个字符…

    2025年12月17日
    000
  • C程序计算身体质量指数(BMI)

    给定一个人的体重和身高,任务是找到他的BMI即身体质量指数,并显示出来。 计算身体质量指数需要两个东西: 体重身高 可以使用下面的公式计算BMI: BMI = (质量或体重) / (身高*身高) 其中体重以千克为单位,身高以米为单位 示例 Input 1-: weight = 60.00 Heigh…

    2025年12月17日
    000
  • 计算要与频率大于其他字符频率之和的字符连接的字符串数量

    我们的主要目标是确定最多的字符串能够被连接起来,以确保只有一个字母的频率超过所有其他字符的总和,前提是有一个名为arr[]的包含M个字符串的数组。 在继续之前,让我们了解一些数组和字符串的基本概念。 数组就是一组相同数据类型的元素,存储在连续的内存区域中。 C编程语言中的数组具有固定的大小,这意味着…

    2025年12月17日
    000
  • 在C++中,计算两点之间的整数点数量

    在本教程中,我们将编写一个程序,用于找到给定两个点之间的整数点的数量。 两个给定点之间的点的数量将是gcd(abs(x2), abs(y1-y2)) – 1。 如果连接线与x轴平行,则整数点的数量将是abs(y1 – y2) – 1。 如果连接线与y轴平行,则整数…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信