蒟蒻求助,为何只有30分呢?
查看原帖
蒟蒻求助,为何只有30分呢?
1179393
Noldo楼主2024/4/7 18:58
#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
const int N = 100010;
int n;
long long num[N];
void f(int x, int a, int ans) {
    if (x == n) {  // 边界直接输出答案
        if (num[x] / 10 == a)
            cout << ans;
        else
            cout << ans + 1;
        return;
    }
    // 确定位数
    int sum = 10;
    int cnt = 1;//位数
    while (num[x] >= sum) {
        cnt++;
        sum = pow(10, cnt);
    }
    int star = num[x] / pow(10, cnt - 1);
    int end = num[x] % 10;

    if (star == a || x == 1)
        f(x + 1, end, ans);  // 符合要求
    else
        f(x + 1, a, ans + 1);  // 不符合
}

int main() {
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> num[i];
    f(1, 0, 0);
    return 0;
}
2024/4/7 18:58
加载中...