zoukankan      html  css  js  c++  java
  • 南阳975--关于521(打表)

    关于521

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:2
     
    描述

    Acm队的流年对数学的研究不是很透彻,但是固执的他还是想一头扎进去。

    浏览网页的流年忽然看到了网上有人用玫瑰花瓣拼成了521三个数字,顿时觉得好浪漫,因为每个男生都会不经意的成为浪漫的制造者。此后,流年走到哪里都能看到5、2、1三个数字,他怒了,现在他想知道在连续的数中有多少数全部包含了这三个数字。例如12356就算一个,而5111就不算。特别的,如果他看到了521三个数连续出现,会特别的愤怒。例如35210。

     
    输入
    多组测试数据:
    一行给定两个数a,b(0<a,b<1000000),表示数字的开始和结束。
    输出
    一行显示他想要知道的数有几个及显示有多少个数字令他特别的愤怒。用空格隔开。
    样例输入
    200 500
    300 900
    1 600
    样例输出
    Case 1:2 0
    Case 2:2 1
    Case 3:6 1
    来源
    流年
     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<stdlib.h>
     4 char ch[20];
     5 int biao[2][1000100];
     6 int main()
     7 {
     8     int i,total=0,sum=0;
     9     memset(biao,0,sizeof(biao));
    10     for(i=1;i<1000001;i++)
    11     {
    12         sprintf(ch,"%d",i);
    13         if(strstr(ch,"1")!=NULL&&strstr(ch,"2")!=NULL&&strstr(ch,"5")!=NULL)
    14         sum++;
    15         if(strstr(ch,"521")!=NULL)
    16         total++;
    17         biao[0][i]=sum;
    18         biao[1][i]=total;    
    19     }
    20     int a,b,k=1;
    21     while(~scanf("%d %d",&a,&b))
    22     {
    23         printf("Case %d:%d %d
    ",k,biao[0][b]-biao[0][a-1],biao[1][b]-biao[1][a-1]);       //因为这边WRONG了无数次,可以理解为给满足条件的数标号,0[0].1[1].2[1],3[3] num[3]-num[2]就应    为1个 ,因为这里的下标为计数器(满足条件的是1,不是2),所以要用[a-1]; 
    24         k++;
    25     }    
    26     return 0; 
    27 }
  • 相关阅读:
    Guava Cache,Java本地内存缓存使用实践
    Guava-retry,java重试组件
    [leetcode] 31. 下一个排列
    [leetcode] 30. 与所有单词相关联的字串(cn第653位做出此题的人~)
    [leetcode] 29. 两数相除
    [leetcode] 28. 实现strStr()
    [leetcode] 27. 移除元素
    [leetcode] 26. 删除排序数组中的重复项
    [leetcode] 25. k个一组翻转链表
    [leetcode] 24. 两两交换链表中的节点
  • 原文地址:https://www.cnblogs.com/soTired/p/4574875.html
Copyright © 2011-2022 走看看