zoukankan      html  css  js  c++  java
  • 【ACM】NYOJ_506_洗澡_20130725

    洗澡
    时间限制:1000 ms  |  内存限制:65535 KB
    难度:1
    描述
    Mostrp是个爱干净的好少年。 有一次去澡堂洗澡时发现 澡堂的澡柜编号中没有出现过数字‘4’。 Mostrp 感到很好奇。可能是因为在澡堂老板眼里。数字‘4’是十分不吉利的。

    现在Mostrp知道澡柜的最大的编号N,你能帮他算出澡堂一共有多少澡柜吗?

    输入
    有多组数据,每行输入一个N。
    ( 1 <= N <= 50000 )
    输出
    输出澡柜的个数,输出占一行。
    样例输入
    3
    5
    样例输出
    3
    4

     1 #include <stdio.h>
     2 int main()
     3 {int n;
     4  while(scanf("%d",&n)!=EOF)
     5  {int i,j,m;
     6   m=n;
     7   for(i=1;i<n;i++)
     8   {j=i;
     9    while(j>0)
    10    {if(j%10==4)
    11     {m--;
    12      j=0;}
    13     j/=10;
    14     }
    15   }
    16   printf("%d
    ",m);
    17  }
    18  return 0;    
    19 }

    思想:对所有数字逐个判断,含有4的减掉,

     1 #include <stdio.h>
     2 #include <string.h>
     3 int s[50010];
     4 int main()
     5 {
     6     int n;
     7     int i,j,t;
     8     memset(s,0,sizeof(s));
     9     s[0]=0;
    10     for(i=1;i<=50000;i++)
    11     {
    12         j=i;
    13         t=0;
    14         while(j>0)
    15         {
    16             if(j%10==4)
    17             {
    18                 t++;
    19                 j=0;
    20             }
    21             j/=10;
    22         }
    23         if(!t)
    24         s[i]=s[i-1]+1;
    25         else
    26         s[i]=s[i-1];
    27     }
    28     while(scanf("%d",&n)!=EOF)
    29     {  
    30         printf("%d
    ",s[n]);
    31     }
    32     return 0;    
    33 }

    //思想:打表,利用前一个的结果,只需判断当前数字即可,很快!

  • 相关阅读:
    inline-block图文布局
    display: inline-block换行问题
    前端Fiddler高级调试技巧
    开发人员linux命令总结
    随笔-系统安装
    Fiddler高阶技能-项目文件代理
    译:如何使用时间轴工具
    jquery 选择器之children与find
    ASP.NET 大文件下载的实现思路及代码
    Git 使用指南
  • 原文地址:https://www.cnblogs.com/xl1027515989/p/3217332.html
Copyright © 2011-2022 走看看