Nepire的校OJ入门题解—17蓝桥选拔篇(五)

欢迎来到Nepire的校OJ入门题解——————17蓝桥选拔篇(五)

这次我主要是讲解第⑨届蓝桥杯全国软件和信息技术专业人才大赛校内选拔赛的七道题目,中间可能会扯到一些其他东西,然后就开始我们的入门题解吧呜喵

Problem E:误会

Description

这天小张在院子里晒着太阳,隔壁老王笑呵呵地走过来:“哟,光合作用呢?”
小张一脸懵逼:“我又不是植物,怎么光合作用?”
“因为你头顶一片绿啊!”
“怎么说话的,信不信把你打成植物人,让你也光合作用?”
老王一脸同情地看着小张:“你大概还不知道吧,你那女朋友可是富贵人家的小姐。”说完把手指向了远处一家叫“富贵人家”的洗脚城。于是,小张立马去房里拿出钞票打车过去。小张有1到n每种面值的钞票各一张,但是小张有个奇怪的原则,如果拿了面值为x的钞票,就不会拿面值为2x的钞票,那么小张最多拿多少张钞票?

Input

输入数据第一行是一个整数T(T <= 10),表示有T组测试数据。
每组数据输入一个整数n(0 < n <= 25)。

Output

每组数据输出一行,一行输出一个整数,表示答案。

Sample Input

2
2
10

Sample Output

1
6

Source

解题思路

这题是这次考试第二水的题,逐个判断这个数是否是已经拿走的面额,如果不是则拿走这个数面额两倍的数。

参考代码

#include <ctype.h>
#include <errno.h>
#include <float.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <wchar.h>
#include <wctype.h>
#include <assert.h>
#include <limits.h>
#include <locale.h>
#include <math.h>
#define k 100
int main()
{
    int t,n,a[k]={0},i,j,m=0;
    scanf("%d",&t);
    while(t--)
    {
        m=0;
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            a[i]=i+1;
        }
        for(i=0;i<n;i++)
        {
            if(a[i] != 0)
            {
                for(j=1;j<=n;j++)
                {
                    if(a[i]*2==j)
                    {
                        a[j-1]=0;
                    }
                }
            }

        }
        for(i=0;i<n;i++)
        {
            if(a[i]!=0)
            {
                m++;
            }
        }
        printf("%d\n",m);
    }
    return 0;
}

下次17蓝桥校选拔Problem F,欢迎大家在下面评论建议

——Nepire

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页