计算不具有给定前缀的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月8日 18:26:21

相关推荐

  • 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
  • 计算菱形的面积和周长的程序,已知对角线是什么?在C++中,什么是菱形?

    什么是菱形? 在几何学中,菱形是四个边长相同的四边形。菱形与形状菱形相似。如果菱形的对角线成直角,那么它就变成正方形。 菱形的性质是 – 边相等对边平行,对角相等,是平行四边形对角线平分直角 下图是菱形 立即学习“C++免费学习笔记(深入)”; 问题 给定对角线,假设 d1 和 d2 的…

    2025年12月17日
    000
  • 计算商和余数的C程序?

    Given two numbers dividend and divisor. The task is to write a program to find the quotient and remainder of these two numbers when the dividend is di…

    2025年12月17日
    000
  • 使用结构体编写的C程序,用于计算圆和圆柱体的面积

    在C编程语言中,我们可以利用结构体来找到圆的面积、圆柱体的面积和体积。 用于找到圆的面积的逻辑如下: s.areacircle = (float)pi*s.radius*s.radius; 用于计算圆柱体的面积的逻辑如下: s.areacylinder = (float)2*pi*s.radius*…

    2025年12月17日
    000
  • 从给定的句子中找出以给定词为前缀的词

    在处理自然语言处理或文本分析时,通常需要在较大的文本体中搜索特定的单词或短语。一个常见的任务是找到句子中以给定前缀开头的所有单词。在本文中,我们将探讨如何使用C++来完成这个任务。 算法 读取输入的句子和前缀。 将输入的句子分解为单个单词。 For each word in the sentence…

    2025年12月17日
    000
  • 用C语言编写计算十边形周长的程序

    什么是十边形? 给定边长,任务是计算十边形的周长。十边形是一种有10条边的多边形,因此也被称为10边形。它有10个顶点和边。一个正十边形的边长相等,每个内角为144度。 下面是十边形的图形 计算圆锥台的体积和表面积有一个公式 Perimeter = 10 * Side 示例 Input-: side…

    2025年12月17日
    000
  • C++程序用于根据给定的底数计算给定数字的对数

    在几乎所有现代编程语言中,我们可以找到一些对数函数,如自然对数、以2为底的对数、以10为底的对数等。但有时我们需要计算不在给定库函数中的不同底数的对数。为了实现这个目标,我们可以使用简单的对数公式。在本文中,我们将看到如何在C++中使用给定的数字和给定的底数计算对数值。 给定底数计算对数的公式 假设…

    2025年12月17日
    000
  • C/C++程序:计算以n的平方减去(n-1)的平方为第n项的序列的和

    There are many types of series in mathematics which can be solved easily in C programming. This program is to find the sum of following of series in C…

    2025年12月17日
    000
  • C程序计算线性回归

    问题 编写一个程序来实现线性回归算法。 用户需要输入总共的数值个数。 解决方案 使用C编程语言计算线性回归的解决方案如下: 线性回归通过将线性方程与观测数据相连接来找到两个变量之间的关系。一个变量是解释变量,另一个是因变量。 关于线性回归的逻辑如下所述: for(i=0;i<n;i++){ p…

    2025年12月17日
    000
  • 如何使用Python的count()函数计算列表中某个元素的数量

    如何使用Python的count()函数计算列表中某个元素的数量,需要具体代码示例 Python作为一种强大且易学的编程语言,提供了许多内置函数来处理不同的数据结构。其中之一就是count()函数,它可以用来计算列表中某个元素的数量。在本文中,我们将详细介绍如何使用count()函数,并提供具体的代…

    2025年12月13日
    000
  • Python程序计算矩阵左对角线之和

    Python 是一种流行的通用编程语言,可用于从桌面应用程序到 Web 开发和机器学习的广泛行业。 其简单的语法使其成为初学者开始编码的理想选择。在本文中,我们将了解如何使用 Python 来计算“矩阵中左对角线元素的总和”。 矩阵 在数学中,我们使用矩形排列或矩阵,用于描述数学对象或数学对象的属性…

    2025年12月13日
    000
  • 使用Python计算字符串中单词的长度

    使用 Python 查找给定输入字符串中各个单词的长度是必须解决的问题。我们想要计算文本输入中每个单词的字符数,并以结构化样式(如列表)显示结果。该任务需要分解输入字符串并分隔每个单词。然后根据其中的字符数计算每个单词的长度。基本目标是创建一个可以有效接收输入、确定字长并及时输出结果的函数或过程。在…

    2025年12月13日
    000
  • 解决 Laravel 项目中 PHP fileinfo 扩展缺失导致的问题

    本文旨在解决初次使用 laravel 时,因 php `fileinfo` 扩展缺失而导致的 composer 安装失败及 `php artisan serve` 命令无响应的问题。教程将详细指导如何在 windows 系统下通过编辑 `php.ini` 文件来启用 `fileinfo` 扩展,确保…

    2025年12月12日
    000
  • 解决Laravel项目启动失败:缺失fileinfo扩展的终极指南

    本文旨在帮助初学者解决在Windows 10环境下,使用Laravel创建新项目时遇到的“Your requirements could not be resolved to an installable set of packages”错误,该错误通常是由于PHP的fileinfo扩展未启用所致。…

    2025年12月12日
    000
  • PHP 函数命名中的命名空间前缀

    php 函数命名空间前缀是附加在函数名称之前的标识符,用于识别函数的命名空间。这样做的好处包括:可读性增强;避免名称冲突;优化自动加载。 PHP 函数命名中的命名空间前缀 在 PHP 中,函数的命名空间前缀是一个可选的标识符,用于在函数调用中识别函数的命名空间。前缀通过使用 符号附加到函数名称之前。…

    2025年12月9日
    000
  • mysql常用日期与计算函数实例讲解

    mysql数据库中的日期比较与计算是经常用到的,例如比较两个日期大小,计算两个日期相差多少天,本文主要和大家分享mysql常用日期与计算函数实例,希望能帮助到大家。 unix_timestamp() unix_timestamp 函数可以接受一个参数,也可以不使用参数。 它的返回值是一个无符号的整数…

    2025年12月2日
    000
  • 从Java全栈到Vue3实战:一次真实面试的深度复盘

    以上就是从Java全栈到Vue3实战:一次真实面试的深度复盘的详细内容,更多请关注创想鸟其它相关文章!

    科技 2025年12月1日
    100
  • 新研究揭示量子蒙特卡洛超越神经网络在突破限制方面的潜力,Nature子刊详述最新进展

    时隔四个月,ByteDance Research 与北京大学物理学院陈基课题组又一合作工作登上国际顶级刊物 Nature Communications:论文《 Towards the ground state of molecules via diffusion Monte Carlo on neu…

    2025年11月27日 科技
    000

发表回复

登录后才能评论
关注微信