Problem 26 高精度加法
//============================================================================
// Name : pe25.cpp
// Author : paul08colin
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int MAXN = 1000;
int main()
{
int f1[1010];
int f2[1010];
int f3[1010];
memset(f1,0,sizeof(f1));
memset(f2,0,sizeof(f2));
memset(f3,0,sizeof(f3));
f1[0] = 1;
f2[0] = 1;
int ans = 2;
while(1)
{
int carry = 0;
int i;
for(i = 0; i <= MAXN; i++)
{
f3[i] = f1[i] + f2[i] + carry;
carry = (f3[i])/10;
f3[i] %= 10;
}
ans++;
for(i = 1005; i >=999; i--)
{
if(f3[i] != 0)
{
goto here;
}
}
for(i = 0; i <= MAXN; i++)
{
f1[i] = f2[i] + f3[i] + carry;
carry = (f1[i])/10;
f1[i] %= 10;
}
ans++;
for(i = 1005; i >=999; i--)
{
if(f1[i] != 0)
{
goto here;
}
}
memcpy(f2,f1,sizeof(f1));
memcpy(f1,f3,sizeof(f3));
}
here:;
printf("%d
",ans);
return 0;
}
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了
