2018年海淀区青少年程序设计思维挑战活动普及组详细答案

1 拆烟囱

分析:注意本题要求的是没有动拆的烟囱数量,不包含没拆完的。

#include 
#include 
using namespace std;

int main()
{
    int n, day, y;
    cin >> n >> day >> y;
    cout << ceil((day * 24 * 1.0) / y) << endl;

    return 0;
}

2 幸运数

#include 
using namespace std;

int main()
{
    int n, m;
    cin >> n >> m;
    int cnt = n;

    for(int i = 0; i < n; i++)
    {
        int k;
        cin >> k;
        if(0 == k % m)
        {
            while(k)
            {
                if(k % 10 == m)
                {
                    cnt++;
                    break;
                }

                k /= 10;
            }
        }
    }

    cout << cnt << endl;

    return 0;
}

3 最大公共素因子

#include
using namespace std;

bool isprime(int n)
{
    for(int i = 2; i * i <= n; i++)
    {
        if(n % i == 0)
        {
            return false;
        }
    }

    return true;
}

int gcd(int a, int b)
{
    return b == 0 ? a : gcd(b, a % b);
}


int main()
  {
     int m, n;
     cin >> n >> m;
     int q = gcd(n, m);
     for(int res = q; res >= 2; res--)
     {
         if(isprime(res))
         {
             cout << res << endl;
             return 0;
         }
     }

     cout << 0 << endl;
     return 0;
 }

少儿编程、算法咨询请加微信307591841或QQ群581357582


信息学竞赛公众号.jpg

你可能感兴趣的:(2018年海淀区青少年程序设计思维挑战活动普及组详细答案)