a+b问题(不高精and高精)
a+b问题(无高精):
输入两个整数a,b,输出它们的和(|a|,|b|<=10^9)。 注意 pascal使用integer会爆掉哦! 有负数哦! c/c++的main函数必须是int类型,而且最后要return 0。这不仅对洛谷其他题目有效,而且也是noip/noi比赛的要求!
吓死我了,我好害怕啊,不知道以后怎么打代码了,呜呜呜。呃呃,其实很简单,这是规则,不能违反。我们只能遵守咯。
样例一看,突然间仿佛回到了小学那时候,懵懂无知,天真无邪。。。咔,又跑题了。其实就是输入两个数,求这两个数的和(两个数相加的结果)。听到这里,你应该很胸有成竹,但是在打代码前我们先注意一些小细节哦!
1.我们在打代码时应该行首对齐,最好不要顶格,因为以后代码太长会很乱。 2.注意每句末尾加上分号 " 这其实相当于我们C语言中的句号,说活不能一口气一直说下去,要合理添加句号。
一定要做到以上两点哦,从开始就养成好的编程习惯,一定会给你带来好处。
c++代码:
#include<iostream>
using namespace std;
int main()
{int a,b;//定义int类型变量a,bcin>>a;//输入acin>>b;//输入bcout<<a+b<<endl;//输出a+b的值return 0;//程序结束
}
c语言代码:
#include <stdio.h>
int main()
{int a,b;//定义int类型变量a,bscanf("%d %d",&a,&b);//输入a,bprintf("%d", a+b);//输出a+b的值return 0;//程序结束
}
a+b问题(高精):
比较简单的高精度。
高精度。顾名思义,就是在很大的位数情况下进行运算。(炸int)
其基本思想就是用数组进行模拟加法。
模拟近位。
最后遍历数组输出。
附上高精加,减,乘代码。
减,乘被注释。
自行取用修改
c++代码如下:
#include<stdio.h>
#include<string>
#include<string.h>
#include<iostream>
using namespace std;
//compare比较函数:相等返回0,大于返回1,小于返回-1
int compare(string str1,string str2)
{if(str1.length()>str2.length()) return 1;else if(str1.length()<str2.length()) return -1;else return str1.compare(str2);
}
//高精度加法
//只能是两个正数相加
string add(string str1,string str2)//高精度加法
{string str;int len1=str1.length();int len2=str2.length();//前面补0,弄成长度相同if(len1<len2){for(int i=1;i<=len2-len1;i++)str1="0"+str1;}else{for(int i=1;i<=len1-len2;i++)str2="0"+str2;}len1=str1.length();int cf=0;int temp;for(int i=len1-1;i>=0;i--){temp=str1[i]-'0'+str2[i]-'0'+cf;cf=temp/10;temp%=10;str=char(temp+'0')+str;}if(cf!=0) str=char(cf+'0')+str;return str;
}
//高精度减法
//只能是两个正数相减,而且要大减小
/*string sub(string str1,string str2)//高精度减法
{string str;int tmp=str1.length()-str2.length();int cf=0;for(int i=str2.length()-1;i>=0;i--){if(str1[tmp+i]<str2[i]+cf){str=char(str1[tmp+i]-str2[i]-cf+'0'+10)+str;cf=1;}else{str=char(str1[tmp+i]-str2[i]-cf+'0')+str;cf=0;}}for(int i=tmp-1;i>=0;i--){if(str1[i]-cf>='0'){str=char(str1[i]-cf)+str;cf=0;}else{str=char(str1[i]-cf+10)+str;cf=1;}}str.erase(0,str.find_first_not_of('0'));//去除结果中多余的前导0return str;
}
//高精度乘法
//只能是两个正数相乘
string mul(string str1,string str2)
{string str;int len1=str1.length();int len2=str2.length();string tempstr;for(int i=len2-1;i>=0;i--){tempstr="";int temp=str2[i]-'0';int t=0;int cf=0;if(temp!=0){for(int j=1;j<=len2-1-i;j++)tempstr+="0";for(int j=len1-1;j>=0;j--){t=(temp*(str1[j]-'0')+cf)%10;cf=(temp*(str1[j]-'0')+cf)/10;tempstr=char(t+'0')+tempstr;}if(cf!=0) tempstr=char(cf+'0')+tempstr;}str=add(str,tempstr);}str.erase(0,str.find_first_not_of('0'));return str;
}
//高精度除法
//两个正数相除,商为quotient,余数为residue
//需要高精度减法和乘法
void div(string str1,string str2,string "ient,string &residue)
{quotient=residue="";//清空if(str2=="0")//判断除数是否为0{quotient=residue="ERROR";return;}if(str1=="0")//判断被除数是否为0{quotient=residue="0";return;}int res=compare(str1,str2);if(res<0){quotient="0";residue=str1;return;}else if(res==0){quotient="1";residue="0";return;}else{int len1=str1.length();int len2=str2.length();string tempstr;tempstr.append(str1,0,len2-1);for(int i=len2-1;i<len1;i++){tempstr=tempstr+str1[i];tempstr.erase(0,tempstr.find_first_not_of('0'));if(tempstr.empty())tempstr="0";for(char ch='9';ch>='0';ch--)//试商{string str,tmp;str=str+ch;tmp=mul(str2,str);if(compare(tmp,tempstr)<=0)//试商成功{quotient=quotient+ch;tempstr=sub(tempstr,tmp);break;}}}residue=tempstr;}quotient.erase(0,quotient.find_first_not_of('0'));if(quotient.empty()) quotient="0";
}
a+b问题(不高精and高精)相关推荐
- 注册造价工程师用书免费电子版_2019-2020造价工程师各科电子教材精讲高清课件拿来和大家免费分享.......
2019-2020造价工程师各科电子教材精讲高清课件拿来和大家免费分享.... 链接:https://pan.baidu.com/s/1bZp-lLNUcGYzSVbVZaJnew 提取码:6f8l ...
- 精仿高仿捕鱼达人游戏Android源码
给大家分享一款精仿高仿捕鱼达人游戏源码,Android版,喜欢开发游戏的朋友可以下载学习,研究一下. 下载地址: http://code.662p.com/view/buyudaren.html
- CSS 行高与行对齐精解:line-height 和 vertical-align (图文)
7.3 line-height 行高指的是文本行的基线间的距离,但是文本之间的空白距离不仅仅是行高决定的, 同时也受字号的影响. 7.3.1 语 法 line-height属性的具体定义列表如下: 语 ...
- 三大数据驱动机制,助力文娱企业打造高留存、高转化增长闭环
引言 信息大爆炸时代,用户每天都在从各种不同的渠道接收海量信息.虽然信息的数量级比以往更加巨大,但是信息的"碎片化"特征也愈加明显.用户在超载的信息中被分散注意力,也无法有效地从中 ...
- 低成本,高利润,高复购
最近比较忙,装修工程进入尾声,要准备交工了,我特地弄了一间书房,要给书房挑办公桌. 趁着装修的机会了解了一下装修行业,一般来说总造价的10%--15%是这个行业的标准利润,一年接上十来个活,一个包工头 ...
- 吴建国 安徽大学 计算机学院,一场高质量、高层次的教育研讨会--中国科学技术大学、安徽大学、解放军电子工程学院教授莅临我院指导纪实...
合肥科技职业学院本着开放办学的宗旨,一直保持着与各领域专家紧密联系的良好传统.学院的发展受到省内外知名高校著名专家的高度关注和扶植,近两年来有南京大学.中国科学技术大学等有声望的专家教授定期来院进行讲 ...
- 一篇文读懂分布式系统本质:高吞吐、高可用、可扩展
承载量是分布式系统存在的原因 当一个互联网业务获得大众欢迎的时候,最显著碰到的技术问题,就是服务器非常繁忙.当每天有1000万个用户访问你的网站时,无论你使用什么样的服务器硬件,都不可能只用一台机器就 ...
- 【网络安全员】需要了解的一项攻击技术-高隐匿、高持久化威胁
一.介绍 本文首先从Rootkit的生存期.可达成的效果,以及运用这项技术展开攻击的可行性和Windows Rootkit现状分析四个角度展开讨论,并结合历史攻击事件,分析掌握这项技术的APT组织所关 ...
- MySQL高可靠_MySQL高可用与高可靠架构
前言 数据库高可用是生产环境使用数据库必要条件,MySQL数据库通常使用复制技术实现.然MySQL复制本身存在很多的"坑"容易被忽视,导致一些开发或运维人员对于MySQL复制的可靠 ...
- tcp/udp高并发和高吐吞性能测试工具
在编写一个网络服务的时候都比较关心这个服务能达到多少并发连接,而在这连接的基础上又能达到一个怎样的交互能力.编写服务已经是一件很花力气的事情,而还要去编写一个能够体现结果的测试工具就更加消耗工作时间. ...
最新文章
- 有多少状元能够成才?(zz)
- ajax+php+jq+面向对象,php+jquery+ajax+json的一个最简单实例
- 插入10000条数据测试DB性能
- 判断设备-安卓|苹果|微信
- 情感分析--word2vec
- 百万数据报表导出:原理分析与总结
- Andorid之华为手机开发模式不打印日志
- 如何造一个移动端的联动选择器(三)
- [LeetCode] Plus One 加一运算
- InsecureRequestWarning: Unverified HTTPS request is being made.解决方法
- 细粒度图像分析进展综述(转)
- C#快速排序源码演示
- php 实现简单的音乐播放器 (音乐上传 音乐列表 音乐删除)
- 未来自动阅读是什么?
- 很多抽筋的笑话,心情不好的孩子慢慢看。悠着点,不要真抽筋~
- java开发设置用户头像_如何修改 WordPress 的用户默认头像?
- CCF CSP 201609-2 火车购票(C++语言100分)[简单模拟题]
- Kepserver EX6配置opc ua服务端 以及客户端
- 域名备案(腾讯云买的域名,在阿里云上进行备案)
- 如何用妙记多 Mojidoc 设置子弹笔记
热门文章
- 十步教学设计法(学科教学法)
- 不懂手机如何拍图识字?这几种简单的方法推荐给你
- 小米8计算机快捷键,小米8这4个隐藏功能,使用半年今天才意外发现
- ESP8266呼吸灯亮度调节并且实时显示PWM数值
- 机器学习中的数学——常用概率分布(五):高斯分布(Gaussian分布)/正态分布(Normal分布)
- 计算机室内设计 cad 论文,cad室内设计 毕业论文
- D-Day 2016 技术分享精选,大牛们的经验漫谈
- 2023通信、网络和信息系统国际大会(CNIS 2023)
- SkeyeVSS视频安防综合管理系统助力智慧楼宇解决方案
- 北航宇航学院计算机,北航宇航学院模式识别与智能系统导师介绍:尹继豪