如标题所示,正常我们的LONGLONG是有上限的,这就涉及到了我们需要用到大数据,具体怎么实现,我用数组进行模拟,每个数组存6位数字,从高位存到低位。算法如下
#include<iostream>
using namespace std;
int main()
{
long long a[100];
long long sum[156];
/*for(int i = 0; i < 156; i++)
sum[i] = 0;*/
int n;
while(cin >> n)
{
for(int i = 0; i < 156; i++)
sum[i] = 0, a[i] = 0;
int k, d;
d = 0;
a[1] = 0;
int m = 1;
int d1 = 0, d2 = 0;
int num = 0;
for(int i = 1; i <= n; i++)
{
num++;
a[i] = a[i] * 10 + 2 + d1;
d1 = a[i] / 1000000;
a[i] = a[i] % 1000000;
// cout << "a[i] = " << a[i] << m << endl;
for(int k = 1; k <= m; k++)
{
sum[k] = sum[k] + a[k] + d2;
d2 = sum[k] / 1000000;
sum[k] = sum[k] % 1000000;

这篇博客探讨了如何处理超过LONGLONG上限的大整数加法问题,通过使用数组模拟存储高位到低位的数字来实现高精度计算。具体算法为将2的幂次(2, 22, 222等)转换为数组形式,然后进行逐位相加。"
42123627,1354484,Oracle视图的WITH CHECK OPTION子句详解,"['数据库', 'Oracle', 'SQL', '视图管理']
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



