小菜看到5,2,1就会特别愤怒,现在他想知道在连续的数中有多少数全部包含了这三个数字。例如12356就算一个,而51111就不算。特别的,如果他看到521三个数连续出现就会特别愤怒。
输入:多组数据测试,一行给定两个数a,b(0>a,b<1000000),表示数字的开始和结束。
输出:一行显示他想要知道的数有几个,然后显示有多少个数字令他特别愤怒。空格隔开。

acm 521521连续问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- CSDN专家-天际的海浪 2021-09-04 00:07关注
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include<stdio.h> int c[1000000]={0},f[1000000]={0}; int main(){ int b[100]={0}; int a,d,i,j,Q,W,E,m,w,x,t=1,s,F,X; for(i=100;i<1000000;i++){ s=i;w=0; c[i]=c[i-1]; f[i]=f[i-1]; while(s){ b[w]=s%10; s=s/10; w++; } Q=0;W=0;E=0;F=0; for(s=0;s<w;s++){ if(b[s]==5) Q++; if(b[s]==2) W++; if(b[s]==1) E++; if(b[s]==1&&b[s+1]==2&&b[s+2]==5){ F++; } } if(Q!=0&&W!=0&&E!=0){ c[i]++; } if(F!=0){ f[i]++; } } while(scanf("%d %d",&a,&d)!=EOF){ printf("Case %d:%d %d\n",t++,c[d]-c[a-1],f[d]-f[a-1]); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报