POJ3982 序列

news2024/3/4 12:34:20

问题链接:POJ3982 序列。

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

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

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

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

/* POJ3982 序列 */

#include <cstdio>
#include <iostream>
#include <string>
#include <sstream>

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://nwjs.net/news/299941.html

如若内容造成侵权/违法违规/事实不符,请联系七分地网进行投诉反馈,一经查实,立即删除!

相关文章

济南计算机中考分数,【更新版】2017济南各初中中考成绩汇总!

原标题&#xff1a;【更新版】2017济南各初中中考成绩汇总&#xff01;据悉&#xff1a;17年全市初三学考报名58443人(不含推荐生3304人)&#xff0c;比去年少2529人。今年中考550分以上的考生累计人数为57人。这一人数远远超过去年的14人&#xff0c;一下子增加43人。而500分以…

取快递的数学问题:手机尾号的重复概率

学校门口&#xff0c;四位手机尾号取快递。问&#xff1a;设有 \(n\) 个包裹&#xff0c;则存在两个包裹号码&#xff08;收件人手机尾号&#xff0c;假设均匀分布&#xff09;相同的概率 \(P(n)\) 是多少&#xff1f; 答曰&#xff1a;手机尾号一共有 \(10^410000\) 个&#x…

中国公司再获KDD两项最佳:松鼠AI拿下图深度学习研讨会最佳论文最佳学生论文...

特约供稿 量子位 出品 | 公众号 QbitAIKDD&#xff0c;国际数据挖掘与知识发现大会&#xff0c;全称&#xff1a;ACM SIGKDD Conference on Knowledge Discovery and DataMining&#xff0c;是数据挖掘领域国际最高级别会议。KDD“图深度学习国际研讨会&#xff1a;方法与应用&…

余承东回应鸿蒙OS十大疑云:人都是被逼出来的

乾明 发自 东莞 量子位 报道 | 公众号 QbitAI华为鸿蒙&#xff08;HarmonyOS&#xff09;昨日面世&#xff0c;有赞美&#xff0c;更有质疑。发布会后&#xff0c;华为消费者BG CEO余承东、华为消费者BG软件部总裁王成录&#xff0c;就集中对这些质疑作出解答。比如鸿蒙如何实现…

Angular 中得 scope 作用域梳理

2019独角兽企业重金招聘Python工程师标准>>> $scope 的使用贯穿整个 Angular App 应用,它与数据模型相关联,同时也是表达式执行的上下文.有了 $scope 就在视图和控制器之间建立了一个通道,基于作用域视图在修改数据时会立刻更新 $scope,同样的 $scope 发生改变时也会…

2003服务器系统屏蔽广告,电脑总是乱弹广告弹窗?教你彻底关闭

原标题&#xff1a;电脑总是乱弹广告弹窗&#xff1f;教你彻底关闭许多小伙伴都有过这样的经历&#xff1a;干干净净的电脑系统还没用多久&#xff0c;就莫名其妙冒出些弹窗广告。有些像推销、有些像诈骗&#xff0c;还有一些过分到自己都没眼看 &#x1f928; 如果赶上给领导汇…

bt下载加速 BitTorrent trackers服务器列表

有时候用BT软件下载文件的时候&#xff0c;经常会碰到没速度的情况&#xff0c;这个时候你就需要设置BT Tracker服务器地址了。网上有人专门做了一个列表放在github上面&#xff0c;不定时更新。BitComet软件可以直接添加URL&#xff0c;然后设置启动时更新。 项目地址&#xf…

任正非最新内部信:过去只为赚点小钱,现在要用5G+AI战胜美国

原载&#xff1a;蓝血研究&#xff08;ID&#xff1a;lanxueyanjiu&#xff09;量子位 转载 | 公众号 QbitAI2019年7月31日&#xff0c;华为举行“千疮百孔的烂伊尔2飞机”战旗交接仪式&#xff0c;任正非在仪式上做了题为《钢铁是怎么炼成的》的讲话。该讲话内容以电邮讲话【2…

什么命令看服务器系统,查看linux系统版本可以使用什么命令_网站服务器运行维护...

win10系统任务栏不显示应用图标怎么办_网站服务器运行维护win10系统任务栏不显示应用图标的解决方法是&#xff1a;1、鼠标右键点击任务栏空白处&#xff0c;在弹出的选项列表中选择【任务管理器】选项&#xff1b;2、右键点击【Windows资源管理器】选项&#xff1b;3、选择【重…

struts2中解决下载文件名中文乱码问题

2019独角兽企业重金招聘Python工程师标准>>> 在struts2中xml配置如下&#xff0c;以execl文件为例&#xff1a; <result name"success" type"stream"> <param name"contentType">application/vnd.ms-excel</param&…

Oauth2认证以及新浪微博开放平台应用

一、OAuth2.0概述 大部分API的访问如发表微博、获取私信&#xff0c;关注都需要用户身份&#xff0c;目前新浪微博开放平台用户身份鉴权有OAuth2.0和Basic Auth&#xff08;仅用于应用所属开发者调试接口&#xff09;&#xff0c;新版接口也仅支持这两种方式。OAuth2.0较1.0相比…

python 编码规范 PEP8整理

我是用Python的IDE&#xff1a;pycharm来编写Python代码的&#xff0c;用IDE编写代码有一个好处就是语法高亮&#xff0c;智能提示。Python的代码样式规范称之为PEP 8规范&#xff0c;每次编写代码如果有出现不符合PEP 8规范的话&#xff0c;pycharm就会提示我&#xff0c;就像…

腾讯极客攻破iPhone刷脸解锁,凭一副眼镜,转走熟睡用户的钱

允中 发自 凹非寺 量子位 报道 | 公众号 QbitAIFace ID&#xff0c;苹果iPhone最先进的刷脸解锁方式&#xff0c;也一直以3D识别更安全而著称。相比广大安卓阵线的2D刷脸识别&#xff0c;iPhone用了更贵的传感器&#xff0c;能够实现更周密强大的活体识别&#xff0c;保证用户在…

服务器的文件共享,服务器文件共享设置

服务器文件共享设置 内容精选换一换本文介绍了弹性文件服务SFS各特性版本的功能发布和对应的文档动态&#xff0c;新特性将在各个区域(Region)陆续发布&#xff0c;欢迎体验。云耀云服务器默认设置的时区&#xff0c;是您制作镜像时选择的时区。如需修改&#xff0c;请参见本节…

GitHub万星资源:强化学习算法实现,教程代码样样全,还有详细学习规划

鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI自从有了强化学习&#xff08;RL&#xff09;&#xff0c;AI上能星际争霸&#xff0c;下能雅达利称王&#xff0c;让内行人沉醉&#xff0c;让外行人惊奇。这里恰有一份标星过万的强化学习资源&#xff0c;既有教程推荐&#xff0…

慢保刚办下来如何使用_在科目二离合和方向没学好的学员如何备考科目三?

虽然大家在驾考过程中挂科方式不同&#xff0c;但要是问下来哪个科目最难&#xff0c;估计回答最多的就是科目二和科目三了吧&#xff1f;如何在科目二离合和方向没有学好的情况下备考科目三呢&#xff1f;你需要做到以下这些&#xff1a;离合没学好学车就是学离合在科目二中体…

免费数学神器有了手机版,再复杂的公式,拍照就能转成LaTeX

乾明 发自 D902 量子位 报道 | 公众号 QbitAI神器在手&#xff0c;LaTex我有。免费帮你快速把数学公式照片转成LaTeX代码的工具Snip&#xff0c;现有了手机版&#xff0c;支持iOS和安卓。操作起来依旧非常简单&#xff1a;再复杂的公式&#xff0c;只要拍照下来&#xff0c;它就…

python3 eval安全替代函数ast.literal_eval

一、eval函数 eval()官方文档里面给出来的功能解释是&#xff1a;将字符串string对象转化为有效的表达式参与求值运算返回计算结果。 示例&#xff1a; >>> s8*8 >>> eval(s) 64 >>> eval(25*4) 22 >>> x1 >>> y4 >>>…

coreldraw水涟漪怎么做_排骨不论怎么做,都“别先焯水”,记住这2点,排骨鲜嫩无腥味!...

大家好&#xff0c;我是小张&#xff0c;今天小张来教大家做排骨&#xff0c;肉品是不能离开我们人类的&#xff0c;毕竟天天吃素的话&#xff0c;那多没有营养啊&#xff0c;我们的适当买一些肉来食用&#xff0c;及时补充人体的营养。在众多肉类中&#xff0c;猪肉是我们平日…

Git常用命令总结(超实用)

导读Git是一款免费、开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。一般来说&#xff0c;日常使用Git只要记住下图6个命令&#xff0c;就可以了。但是熟练使用&#xff0c;恐怕要记住60&#xff5e;100个命令。下面是我整理的常用 Git 命令清单。…