洛谷P1045 麦森数

您所在的位置:网站首页 pk104510000 洛谷P1045 麦森数

洛谷P1045 麦森数

2024-07-05 11:49| 来源: 网络整理| 查看: 265

题目描述

求\(2^P - 1\)的后五百位,且输出\(2^P - 1\)的位数,其中\(1000= 1; } 4. 输出 for (int i = 0, k = 499; i < 10; i++) { for (int j = 0; j < 50; j++, k--) { if (k) printf("%d", res[k]); else printf("%d", res[k] - 1); } puts(""); } 完整代码 #include #include #include using namespace std; const int N = 1000 + 10; vector mul(vector &A, vector &B) { vector C(N, 0); for (int i = 0; i < 500; i++) for (int j = 0; j < 500; j++) C[i + j] += A[i] * B[j]; // printf("%d ", i + j); for (int j = 0; j < 500; j++) { C[j + 1] += C[j] / 10; C[j] %= 10; } return C; } int main() { int p; scanf("%d", &p); vector res(N, 0); vector t(N, 0); t[0] = 2; res[0] = 1; printf("%d\n", (int)(p * log10(2)) + 1); while (p) { if (p & 1) res = mul(res, t); t = mul(t, t); p >>= 1; } for (int i = 0, k = 499; i < 10; i++) { for (int j = 0; j < 50; j++, k--) { if (k) printf("%d", res[k]); else printf("%d", res[k] - 1); } puts(""); } return 0; }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3