博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ3982 序列
阅读量:6225 次
发布时间:2019-06-21

本文共 2241 字,大约阅读时间需要 7 分钟。

问题链接:。

问题简述:参见上述链接。

问题分析这只是一个大整数数列的问题,有一个大整数类就解决了。数列类似于斐波拉契数列,只是稍微复杂一些。

程序说明这里使用自己的功能简洁的大整数类。这个类是参考其他人的程序改造的。

AC的C++语言程序如下:

/* POJ3982 序列 */#include 
#include
#include
#include
using namespace std;/* 无符号整数类,整数放在字符串中,可以用整数初始化。 * 只有以下功能: * 1.数组 * 2.加运算。 */class UBigInt {private: string num;public: UBigInt(); UBigInt(int n); void setNumber(string s); const string& getNumber(); // retrieves the number UBigInt operator + (UBigInt b);private: string add(string number1, string number2); UBigInt& operator [] (int n);};UBigInt::UBigInt() { // empty constructor initializes zero num = "0";}UBigInt::UBigInt(int n) { stringstream ss; string s; ss << n; ss >> s; setNumber(s);}void UBigInt::setNumber(string s) { num = s;}const string& UBigInt::getNumber() { // retrieves the number return num;}UBigInt UBigInt::operator + (UBigInt b) { UBigInt addition; addition.setNumber( add(getNumber(), b.getNumber() ) ); return addition;}string UBigInt::add(string number1, string number2) { string add = (number1.length() > number2.length()) ? number1 : number2; int diffLength = abs( (int) (number1.size() - number2.size()) ); if(number1.size() > number2.size()) number2.insert(0, diffLength, '0'); // put zeros from left else// if(number1.size() < number2.size()) number1.insert(0, diffLength, '0'); char carry = 0; for(int i=number1.size()-1; i>=0; --i) { add[i] = (carry+(number1[i]-'0')+(number2[i]-'0')) + '0'; if(i != 0) { if(add[i] > '9') { add[i] -= 10; carry = 1; } else carry = 0; } } if(add[0] > '9') { add[0]-= 10; add.insert(0,1,'1'); } return add;}UBigInt& UBigInt::operator [] (int n) { return *(this + (n*sizeof(UBigInt)));}int main(){ UBigInt t[99+1]; int a, b, c; while(scanf("%d%d%d", &a, &b, &c) != EOF) { t[0] = a; t[1] = b; t[2] = c; for(int i=3; i<=99; i++) t[i] = t[i-3] + t[i-2] + t[i-1]; cout << t[99].getNumber() << endl; } return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7564815.html

你可能感兴趣的文章
《CLR via C#》读书笔记 之 线程基础
查看>>
Linux中的lo回环接口详细介绍
查看>>
玩转Web之servlet(三)---一张图看懂B/S架构
查看>>
Neutron中的Service类
查看>>
MCU开发之I2C通信
查看>>
angular学习笔记(二十七)-$http(5)-使用$http构建RESTful架构
查看>>
阿里集团2015届校园招聘内推
查看>>
Android 面试精华题目总结
查看>>
SQL函数简述
查看>>
Swift 注释
查看>>
应对Memcached缓存失效,导致高并发查询DB的几种思路
查看>>
PLSQL_性能优化系列14_Oracle High Water Level高水位分析
查看>>
A Game with Colored Balls
查看>>
使用哈希加盐法来为密码加密【转】
查看>>
fastjson经常用法
查看>>
Java虚拟机工作原理具体解释
查看>>
建立网站的全套流程与详细解释
查看>>
PHP会员找回密码功能实现实例介绍
查看>>
iPhone 6 屏幕揭秘
查看>>
一年成为Emacs高手(像神一样使用编辑器)
查看>>