[代码思路] 如何做, 给出思路即可,有能力的话也可以附上有注释的代码
  • 板块灌水区
  • 楼主ioi_ak
  • 当前回复18
  • 已保存回复19
  • 发布时间2024/9/30 19:56
  • 上次更新2024/9/30 21:55:56
查看原帖
[代码思路] 如何做, 给出思路即可,有能力的话也可以附上有注释的代码
1352181
ioi_ak楼主2024/9/30 19:56

这是我的rz代码:

#include <iostream>
#define mod  998244353
#define lld long long
using namespace std;
int main() {
    lld n, ans=1; cin >> n;
    for(lld i=0;i<n;i++){
        for(lld j=1, cnt=1;j<=1000000000000000000;j*=10, cnt++){
            if(i/j<10){
                ans=(ans+cnt)%mod;
                break;
            }
        }
    }
    cout << ans%mod << endl;
    return 0;
}

这是我同学的天才代码:

#include <iostream>
const int mod = 998244353;

int main() {
    int n;
    std::cin >> n;
    int digit_count[10] = {0};
    for (int i = 1; i <= n; ++i) {
        int num = i;
        while (num > 0) {
            digit_count[num % 10]++;
            num = num / 10;
        }
    }
    int s = 0;
    for (int i = 0; i < 10; ++i) {
        s += digit_count[i];
        s %= mod;
    }
    std::cout << s << std::endl;
    return 0;
}

我的20分他的40分

2024/9/30 19:56
加载中...