问题标题: 酷町堂:1592 venus的7

0
0
已解决
储金洋
储金洋
新手光能
新手光能

生活在venus上的人使用阿拉伯数字来进行计数,但是没有7这个数字,所以venus数字8其实表示的是自然数中的7,18表示的是自然数中的16。下面计算一下,在正整数n范围以内包含有多少个venus数字。

输入描述 Input Description

第一行为正整数k(k<10000),接下来k行,每行一个正整数n(n≤100000)。

输出描述 Output Description

对于每个正整数n,输出n以内的venus数的个数。

样例输入 Sample Input

2
10
20

样例输出 Sample Output

9
18

请大犇给我解题思路


1
已采纳
栾峻岩
栾峻岩
初级天翼
初级天翼

首先(这是必做的)

循环(超级大循环)

里面输入每一组的数据。

要定义一个函数,专门拆数,bool型。

bool sfs(int x)//是否是7
{
   while (x)
   {
      if (x%10==7)
         return true;//直接返回,不啰嗦。
   }
   return false;//都不是,就是里面没有7。
}

从1到n循环(在超级大循环里面,是在输入后)

定义一个num,每次循环(超级大循环之内,小循环之外),都赋值为0.

如果sfs(i),则这个数里面有7,则num++。

最后,输出n-num,还有,换行!!!!!

 

100AC哦!

不对,再找我!

0
0
0
0
储金洋
储金洋
新手光能
新手光能

如果照你说的,搞个超级大循环,那怎么输入呢

0
栾峻岩
栾峻岩
初级天翼
初级天翼

我要吐血了。

for (int i=1;i<=n;i++)
    {
        cin>>n;
         按照我讲的步骤做。
    }

100AC

0
我要回答