NYOJ 506

 

洗澡

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

Mostrp是个爱干净的好少年。 有一次去澡堂洗澡时发现 澡堂的澡柜编号中没有出现过数字‘4’。 Mostrp 感到很好奇。可能是因为在澡堂老板眼里。数字‘4’是十分不吉利的。

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

 
输入
有多组数据,每行输入一个N。 ( 1 <= N <= 50000 )
输出
输出澡柜的个数,输出占一行。
样例输入
3
5
样例输出
3
4
 1 //减4和10求余为0 
 2 #include <iostream>
 3 #include <string>
 4 using namespace std;
 5 int main()
 6 {
 7      int i,j,k;
 8      int N;

 9      int sum;
10      while(cin>>N)
11      {
12           sum = N;
13           for(i=1; i<=N; i++)
14           {
15                if(0==(i-4)%10)
16                     sum--;
17                     //continue;
18           }
19           cout<<sum<<endl;
20      }
21      //while(1);
22      return 0;
23 }
24 
25 //思想不对,这只排出了最后一位不为4 的可能,中间也可能有 
26                
 1 //题意就是任意一位数字均不为4 
 2 //打表存入数组的话速度会更快些 
 3 #include <iostream>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8      int i,j,k;
 9      int num,sum;
10      bool flag;
11      while(cin>>num)
12      {
13           sum = num;
14           flag = true;
15           for(i=1;i<=num;i++)
16           {
17                k = i;
18                while(1)
19                {
20                     if(0 == k)
21                     {
22                          flag = true;
23                          break;
24                     }
25                     int temp = k%10;
26                     if(4 == temp)
27                     {
28                          flag = false;
29                          break;
30                     }
31                     k /= 10;
32                }
33                if(!flag)
34                {
35                     sum--;
36                     flag = true;
37                }
38           }
39           cout<<sum<<endl;
40      }
41      return 0;
42 }
43                     
44      
原文地址:https://www.cnblogs.com/hxsyl/p/2769507.html