Connect the Cable Wires
2013-09-09 20:06
351 查看
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30506#problem/S
fibonacci大数
#include<map>
#include<set>
#include<list>
#include<cmath>
#include<ctime>
#include<deque>
#include<stack>
#include<bitset>
#include<cstdio>
#include<vector>
#include<cstdlib>
#include<cstring>
#include<iomanip>
#include<numeric>
#include<sstream>
#include<utility>
#include<iostream>
#include<algorithm>
#include<functional>
using namespace std ;
//获得fibonacci表
vector<string> Fibs ;
void CalFibs()
{
const int maxn = 10000 ;
int carry , i , j , size1 , size2 , num1 , num2 ;
string add1 , add2 ;
add1 = '1' ;
add2 = '1' ;
Fibs.push_back( add1 ) ;
Fibs.push_back( add2 ) ;
for( int k = 3 ; k <= maxn ; ++k )
{
string sum ;
carry = 0 ;
i = j = 0 ;
size1 = add1.size() ;
size2 = add2.size() ;
while( i < size1 || j < size2 )
{
if( i < size1 )
{
num1 = add1[ i ] - '0' ;
++i ;
}
else
{
num1 = 0 ;
}
if( j < size2 )
{
num2 = add2[ j ] - '0' ;
++ j ;
}
else
{
num2 = 0 ;
}
num1 += ( num2 + carry ) ;
carry = num1 / 10 ;
num1 %= 10 ;
sum.push_back( num1 + '0' ) ;
}
if( carry )
{
sum.push_back( carry + '0' ) ;
}
Fibs.push_back( sum ) ;
add1 = add2 ;
add2 = sum ;
}
}
int main()
{
CalFibs() ;
int n , i ;
string result ;
while( cin >> i )
{
if( !i )
break ;
i = 2 * i ;
result = Fibs[ i - 1 ] ;
for( i = result.size() - 1 ; i >= 0 ; --i )
{
cout << result[ i ] ;
}
cout << endl ;
}
return 0;
}
fibonacci大数
#include<map>
#include<set>
#include<list>
#include<cmath>
#include<ctime>
#include<deque>
#include<stack>
#include<bitset>
#include<cstdio>
#include<vector>
#include<cstdlib>
#include<cstring>
#include<iomanip>
#include<numeric>
#include<sstream>
#include<utility>
#include<iostream>
#include<algorithm>
#include<functional>
using namespace std ;
//获得fibonacci表
vector<string> Fibs ;
void CalFibs()
{
const int maxn = 10000 ;
int carry , i , j , size1 , size2 , num1 , num2 ;
string add1 , add2 ;
add1 = '1' ;
add2 = '1' ;
Fibs.push_back( add1 ) ;
Fibs.push_back( add2 ) ;
for( int k = 3 ; k <= maxn ; ++k )
{
string sum ;
carry = 0 ;
i = j = 0 ;
size1 = add1.size() ;
size2 = add2.size() ;
while( i < size1 || j < size2 )
{
if( i < size1 )
{
num1 = add1[ i ] - '0' ;
++i ;
}
else
{
num1 = 0 ;
}
if( j < size2 )
{
num2 = add2[ j ] - '0' ;
++ j ;
}
else
{
num2 = 0 ;
}
num1 += ( num2 + carry ) ;
carry = num1 / 10 ;
num1 %= 10 ;
sum.push_back( num1 + '0' ) ;
}
if( carry )
{
sum.push_back( carry + '0' ) ;
}
Fibs.push_back( sum ) ;
add1 = add2 ;
add2 = sum ;
}
}
int main()
{
CalFibs() ;
int n , i ;
string result ;
while( cin >> i )
{
if( !i )
break ;
i = 2 * i ;
result = Fibs[ i - 1 ] ;
for( i = result.size() - 1 ; i >= 0 ; --i )
{
cout << result[ i ] ;
}
cout << endl ;
}
return 0;
}
相关文章推荐
- Connect the Cable Wires
- UVA10862 - Connect the Cable Wires(递推 + java的大数)
- UVA10862 - Connect the Cable Wires(递推 + java的大数)
- UVA - 10862 Connect the Cable Wires
- UVA 10862 Connect the Cable Wires
- 10862 - Connect the Cable Wires
- uva 10862 - Connect the Cable Wires(规律)
- UVA 10862 Connect the Cable Wires
- UVa:10862 Connect the Cable Wires(斐波那契数列大数)
- UVA 10862 - Connect the Cable Wires(数论 递推 高精度)
- Cannot connect to the Docker daemon. Is the docker daemon running on this host?
- Python3下的ssl certificate:Can't connect to HTTPS URL because the SSL module is not available.问题解决
- PL/SQL developer连接oracle出现“ORA-12154:TNS:could not resolve the connect identifier specified”问题的解决
- HDU_3371 Connect the Cities ( Prim )
- Unable to connect to the configured development Web server.
- Xcode cannot run using the selected device No supported iOS devices are available. Connect an iOS de
- hdu 5302 Connect the Graph(构造)
- ubuntu gedit出错:Failed to connect to the session manager
- 非root用户出现Cannot connect to the Docker daemon. Is the docker daemon running on this host?
- HDU 3371 Connect the Cities 最小生成树