华为面试算法题求助

给三个数,a,b,n,输出a到b范围内数中不包含n的数的个数,n范围是0到9,这个不用暴力怎么写,比如说a为1,b为20,n为2,结果为17,有无大佬给个解答
全部评论
数位dp,这个是hard难度的题,面试手撕属于太难了
2 回复 分享
发布于 2023-10-11 19:46 北京
#include<stdio.h> int main() { int t , a=1, b=20, n=2,w,k=0; scanf_s("%d%d%d", &amp;a, &amp;b, &amp;n); for (w = a; w <= b; ++w) { t = w; do { if ((t< 10 )&amp;&amp; (t == n))break; else if ((t>=10)&amp;&amp;(t%10 == n)) break; else t = t / 10; } while (t != 0); if (t==0) { k++; printf("%d\n", w); } } printf("有%d个数", k); }
点赞 回复 分享
发布于 2023-10-28 15:05 广东
数位dp吧
点赞 回复 分享
发布于 2023-10-11 16:13 广东
感觉需要把个十百每位取出来分别与n进行比较
点赞 回复 分享
发布于 2023-10-11 16:00 山西
数位dp,或者数值范围小的话,直接暴力判断
点赞 回复 分享
发布于 2023-10-11 15:19 陕西
把包含的算出来减掉
点赞 回复 分享
发布于 2023-10-11 11:58 陕西
这不是排列组合问题嘛,每个位不能取n
点赞 回复 分享
发布于 2023-10-11 11:47 广东

相关推荐

抱抱碍事梨a:三点建议,第一点是建议再做一个项目,把自我介绍部分顶了,第二点是中南大学加黑加粗,第三点是建议加v详细交流
点赞 评论 收藏
分享
评论
1
6
分享

创作者周榜

更多
牛客网
牛客企业服务