P8771题解

· · 题解

这是一道提交答案题,一共两道试题,还是比较简单的。

试题A 九进制转十进制

此题利用进制转换公式即可。

从右到左用九进制的每个数位去乘以 9 的相应次方。

那么此题的 2022 也是同理

2022$ 的个位是 $2$ ,十位是 $2$ ,百位是 $0$ ,千位是 $2

那么转换公式就是:

$=$ $2$ $+$ $18$ $+$ $1458 =$ $1478

具体的代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n=2022,ge,shi,bai,qian,sum;
    ge=n%10; 
    shi=n%100/10;
    bai=n/100%10;
    qian=n/1000;
    sum=qian*(pow(9,3))+bai*(pow(9,2))+shi*(pow(9,1))+ge*(pow(9,0));//进制转换公式
    cout<<qian*(pow(9,3))<<"+"<<bai*(pow(9,2))<<"+"<<shi*(pow(9,1))<<"+"<<ge*(pow(9,0))<<"="<<sum<<endl;
    return 0;
}

试题B 顺子日期

此题需要枚举在 2022 年里,有几个日期中有三位是 3 个连续的。

分析

所以最后一共有 14 种:

$20220121$ 、 $20220122$ 、 $20220123$ 、 $20220124$ 、 $20220125$ 、 $20220126$ 、 $20220127$ 、 $20220128$ 、 $20220129$ 、 $20221012$ 、 $20221123$ 、 $20221230$ 、 $20221231$ 。 # 最终代码: 把题目中给的模板套进去输出即可: ```cpp #include<bits/stdc++.h> using namespace std; int main() { string ans[]= { "1478", "14", }; char T; cin>>T; cout<<ans[T-'A']<<endl; return 0; } ```