专项复习1 高精度

高精度

1 高精度加法 LGP1601

啥也不说,直接上代码

#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
char ans1[505],ans2[505];
int num1[505],num2[505],numans[510];
int len1,len2,lent;
int main(){
    scanf("%s\n%s",ans1+1,ans2+1);
    len1=strlen(ans1+1);
    len2=strlen(ans2+1);
    for(int i=1,j=len1;i<=len1;i++,j--){
        num1[i]=ans1[j]-'0';
    }
    for(int i=1,j=len2;i<=len2;i++,j--){
        num2[i]=ans2[j]-'0';
    }
    lent=max(len1,len2)+1;
    for(int i=1;i<=lent;i++){
        numans[i]=num1[i]+num2[i];
    }
    for(int i=1;i<=lent;i++){
        if(numans[i]>=10){
            numans[i+1]+=(numans[i]/10);
            numans[i]%=10;
        }
    }
    while(numans[lent]==0&&lent>1) lent--;
    for(int i=lent;i>=1;i--){
        printf("%d",numans[i]);
    }
    return 0;
}

2 数楼梯 LGP1255

题解

斐波那契数列+高精度,基本上没什么改动

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
int a[5001][1202];
int n;
//bool pd;
int pd;
int main(){
    a[0][1]=0;
    a[1][1]=1;
    a[2][1]=2;
    scanf("%d",&n);
    for(int i=3;i<=n;i++){
        for(int j=1;j<1200;j++){
            a[i][j]=a[i-1][j]+a[i-2][j];
        }
        for(int j=1;j<1200;j++){
            while(a[i][j]>9){
                a[i][j+1]++;
                a[i][j]-=10;
            }
        }
    }
    for(int i=1200;i>1;i--){
        if(!pd&&a[n][i]==0) continue;
        pd=1;
        printf("%d",a[n][i]);
    }
    printf("%d",a[n][1]);
    return 0;
}

3 \(B\)进制星球 LGP1604

题解

其实就是一个万能的高精度,\(B\)进制就是逢\(B\)进1,以前的\(\mod 10\)、÷10都变成\(\mod B\),剩下的和高精度相同,注意字母和数字的转换(我用了两个函数)

#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
int mod;
char ans1[2020],ans2[2020];
int num1[2020],num2[2020],numans[4050];
int len1,len2,lent;
int che(char s){
    if(s>='0'&&s<='9') return (s-'0');
    return (s-'A'+10);
}
char ret(int s){
    if(s>=0&&s<=9) return (s+'0');
    return('A'+s-10);
}
int main(){
    scanf("%d",&mod);
    scanf("%s\n%s",ans1+1,ans2+1);
    len1=strlen(ans1+1);
    len2=strlen(ans2+1);
    for(int i=1,j=len1;i<=len1;i++,j--){
        num1[i]=che(ans1[j]);
    }
    for(int i=1,j=len2;i<=len2;i++,j--){
        num2[i]=che(ans2[j]);
    }
    lent=max(len1,len2)+1;
    for(int i=1;i<=lent;i++){
        numans[i]=num1[i]+num2[i];
    }
    for(int i=1;i<=lent;i++){
        if(numans[i]>=mod){
            numans[i+1]+=(numans[i]/mod);
            numans[i]%=mod;
        }
    }
    while(numans[lent]==0&&lent>1) lent--;
    for(int i=lent;i>=1;i--){
        printf("%c",ret(numans[i]));
    }
    return 0;
}

原文地址:https://www.cnblogs.com/liuziwen0224/p/fuxi1.html

时间: 2024-10-11 01:11:33

专项复习1 高精度的相关文章

&lt;Standard Template Library&gt;标准模板库专项复习总结(二)

4.队列 先进先出(FIFO)表 头文件:#include<queue> 变量的定义:queue<TYPE>queueName 成员函数: bool empty() 空队列返回true,否则返回false void pop() 删除队列的元素 void push(const TYPE&) 插入新元素 TYPE& size() 返回元素数目 TYPE& front() 返回第一个元素的数值 5.优先队列 在队列的基础上,免费给排顺序 头文件:#include&

HTML+CSS专项复习01

1.onchange是表单内容改变时触发事件: onaclive事件是页面打开了,第二次或两次以上页面激活显示时触发: onload事件是页面第一次打开的时候触发,表示页面加载完执行的事件: onresize事件会在窗口或框架被调整大小时发生(BOM对象): 2.定义和用法 <hr> 标签在 HTML 页面中创建一条水平线. 水平分隔线(horizontal rule)可以在视觉上将文档分隔成各个部分. 定义和用法 <br> 可插入一个简单的换行符. <br> 标签是空

专项复习2 字符串操作

字符串操作 1 拼数 LGP1012 题解 string类型不会真是个事啊,多个字符串开char也不是事啊... 思想很简单,如果\(A+B<B+A\),则\(B\)和\(A\)应该调换(类似冒泡排序) #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <iostream> using namespace std; stri

【软考路上】——总结篇——软考收获+复习建议

无论你现在正在学习什么知识,不要认为它不重要,因为在你今后的某个时刻一定会用上. 这句话,软考给了我很明确的验证.软考复习过程中,很多知识点都是在自考和自己的专业课中学习过的的.软考中的考点大致如下: 还记得琛琛在动员大会上为大家做的考点分析,分析到最后,原来这些知识点大部分都是我们学过的啊~~ 从考试的角度来说,结合自己经历的分享一点小建议: 1.J2SE学习:有人说软考阶段,J2SE学习不重要,如果这么想的话那就大错特错了,学习J2SE并不仅仅是学习java中那几个关键字,更主要的是更深.更

2016考研数学三复习计划

一.学习阶梯划分: 一阶基础 全面复习(3月-6月) 二阶强化 熟悉题型(7月-10月) 三阶模考 查缺补漏(11月-12月15日) 四阶点睛 保持状态(12月16日-考试前) 二.参考书目 : 必备参考资料: 数学考试大纲 <高等数学>同济版:讲解比较细致,例题难度适中,涉及内容广泛,是现在高校中采用比较广泛的教材,配套的辅导教材也很多. <线性代数>同济版:轻薄短小,简明易懂,适合基础不好的学生.<线性代数>清华版:适合基础比较的学生 <概率论与数理统计初步&

走进软考(1)— 完成看视频和看教程的时代

很遗憾的说,从开始计划软考开始,自己就没跟上过软考计划的步伐-- 可能这次软考的大部分同学都是比较慢,昨天也大致"采访"了一下,大概同学们都慢一周时间左右.按照平均进度来,明天要正式开始做真题了,我只是刚刚完成了教程. 总体来讲,这个月的时间不是很充裕.自己有实习,又有如作品展.自学考试.论文和校内试讲等一系列活动,自考从时间上来讲也比较紧张.当然,这并不是自己跟不上的主观借口,对计划估计的不充分.时间管理不好也是导致现在这些状况的主要原因. 两个月的准备时间已经悄然滑过了一个月,着未

LJ 5月6日A组考试考试题解

[题目] T1(L2837) 晚餐队列安排 [题面] 为了避免餐厅过分拥挤,FJ要求奶牛们分2批就餐.每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想,所有第2批就餐的奶牛排在队尾,队伍的前半部分则由设定为第1批就餐的奶牛占据.由于奶牛们不理解FJ的安排,晚饭前的排队成了一个大麻烦. 第i头奶牛有一张标明她用餐批次D_i(1 <= D_i <= 2)的卡片.虽然所有N头奶牛排成了很整齐的队伍,但谁都看得出来,卡片上的号码是完全杂乱无章的. 在若干次混乱的重新排队后,FJ找到了一种简单些的方

软考总结—5月份的春天

从三月中旬到五月23号,备战了两个月的软考终于结束了.无论结果如何,都是快乐的. 首先谈谈软考前的感受吧. 开始并不了解软考都考什么,即使同期的同学们已经很大一部分人通过了这项考试.知道他们从软考过程中可谓是名利双收.名,就是成为了软件设计师,有了中级职称:利,就是真正扎实了软.硬件知识基础,也从中感受到了自学考试带给我们的巨大帮助. 软考备考过程还是比较曲折的.首先是自己的计划没有做好,没有跟上集体制定的甘特图,一直到了快中期了,才发现比计划晚了将近一个星期左右.感觉上还是很着急,把重要不紧急

人在做,天在看——软考总结

金秋九月我们便开始了自己的软考之路,之前都说软考是一次比较重大.比较有难度的考试,所以,抱着"冲一冲"的心态报考了,从报考开始自己就比较重视,严格地按照计划去执行,生怕考试被自己的进度影响到了后边的复习.从视频的学习到课本的浏览,自己不敢有丝毫的懈怠,在这个过程中也确实体会到了参加软考的意义--软考是对自己所学知识很好的总结.回顾的机会,他让我们系统.全面地对于之前的知识有了一个很好的把握,软考中考察的大部分都是自己的接触过的东西,不论是在自学考试中,还是在平常的项目锻炼中,还是在和师