警示后人
  • 板块P1480 A/B Problem
  • 楼主Bad_guy
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/22 12:03
  • 上次更新2023/11/22 16:29:48
查看原帖
警示后人
792020
Bad_guy楼主2023/11/22 12:03

如果你最后一个样例没有过去,那么有可能就是没开long long因为在计算过程中r的取值可以达到9e9超了int所以要开成long long,最后附上本人ac的代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define int long long 
using namespace std;
const int N = 1e4 + 10;
string stra;
int b;
int a[N], c[N];
int r;
int t = 1;
int lena, lenc;
void div(int a[], int b)
{
    for (int i = 1; i <= lena; i++)
    {
        r = r * 10 + a[i];
        c[++lenc] = r / b;
        r %= b;
    }
    while (t < lenc && c[t] == 0)
        t++;
}
signed main()
{
    cin >> stra >> b;
    lena = stra.size();
    for (int i = 1; i <= lena; i++)
        a[i] = stra[i - 1] - '0';
    div(a, b);
    for (int i = t; i <= lenc; i++)
        cout << c[i];
    return 0;
}
2023/11/22 12:03
加载中...