[蓝桥杯2020初赛] 门牌制作与既约分数与蛇形填数

 门牌制作

小蓝要为一条街的住户制作门牌号。
这条街一共有2020 位住户,门牌号从1 到2020 编号。
小蓝制作门牌的方法是先制作0 到9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017 需要依次粘贴字符1、0、1、7,即需要1 个字符0,2 个字符1,1 个字符7。
请问要制作所有的1 到2020 号门牌,总共需要多少个字符2?

输出格式

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只输出这个整数,输出多余的内容将无法得分。

#include <iostream>
#include <bits/stdc++.h>
#include <algorithm>

using namespace std;

typedef long long ll;

int main()
{
    int num = 0;
    for(int i = 1; i <= 2020; i ++)
    {
        if(i % 10 == 2) num ++;
        if(i / 10 % 10 == 2) num ++;
        if(i / 100 % 10 == 2) num ++;
        if(i / 1000 == 2) num ++;
    }
    cout << num;
    return 0;
}


既约分数

如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。
例如\frac{3}{4},\frac{5}{2},\frac{1}{8},\frac{7}{1}43​,25​,81​,17​都是既约分数。
请问,有多少个既约分数,分子和分母都是1 到2020 之间的整数(包括1和2020)?

输出格式

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只输出这个整数,输出多余的内容将无法得分。

#include <iostream>
#include <bits/stdc++.h>
#include <algorithm>

using namespace std;

typedef long long ll;

int main()
{
    int x = 0;
      for(int i = 1; i <= 2020; i ++)
      {
          for(int j = 1; j <= 2020; j ++)
          {
              if(__gcd(i, j) == 1)
              {
                  x ++;
              }
          }
      }
      cout << x;
  return 0;
}


 蛇形填数 

如下图所示,小明用从1 开始的正整数“蛇形”填充无限大的矩阵。
\begin{matrix} 1 & 2 & 6 & 7 & 15 & ... \\ 3 & 5 & 8 & 14 & ... \\ 4 & 9 & 13 & ... \\ 10 & 12 & ... \\ 11 & ... \\ ...   \end{matrix}1341011...  ​25912...​6813...​714...15......
容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20 行第20 列的数是多少?

输出格式

扫描二维码关注公众号,回复: 14169279 查看本文章

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只输出这个整数,输出多余的内容将无法得分。

#include <iostream>
#include <bits/stdc++.h>
#include <algorithm>

using namespace std;

int main()
{
    int s = 1;
    for(int i = 1; i < 20; i ++)
    {
        s += 4 * i;
    }
    printf("%d",s);

    return 0;
}


猜你喜欢

转载自blog.csdn.net/aasd23/article/details/124934850
今日推荐