poj 1503 Integer Inquiry【高精度】
来源:互联网 发布:大学生网络兼职论坛 编辑:程序博客网 时间:2024/05/18 01:31
这题总算是没有那么水的感觉了,不过还是水题,哈哈哈。。。题目主要是求高精度----大数的和,我专门写了一个add函数处理,sum和VeryLongIntegers是两个全局的变量,开始我还准备把sum也写成char型的字符串,但是考虑到结尾的‘\0’,那不是自找麻烦。。果断换成int型数组,这样就容易处理多了。
在add函数中,我把VeryLongIntegers又反转了一次(即变成低位在前),也换成一个int型的数组,这样就变成两个int型数组的高精度加法了。。。
开始还觉得可能会WA一次,不过运气是十分之好,一次AC,再接再厉咯。。。
忘说一句,题目的数据可能会有些变态,以0开头。。。如果判断VeryLongIntegers【0】==‘0’,就悲剧了
我的AC代码
#include <stdio.h>#include <string.h>//变态的题目允许以0开头char VeryLongIntegers[105];int sum[105];//直接用int来放加后的结果,没必要再用char型增加难度//反转之后的VeryLongIntegers和sum都是从低位到高位存放,==打印时要注意void add(){int i;//反转VeryLongIntegersint vers[105]={0};int j=0;for(i=strlen(VeryLongIntegers)-1;i>=0;i--){vers[j]=VeryLongIntegers[i]-'0';j++;//printf("%d",vers[j-1]); //反转OK}//这就变成了两个int数组的大数加法了int temp;for(i=0;i<strlen(VeryLongIntegers);i++){temp=vers[i]+sum[i];if(temp>=10){sum[i]=temp-10;sum[i+1]++;}elsesum[i]=temp;}}int main(){int i=0;while(scanf("%s",VeryLongIntegers)){if(strcmp(VeryLongIntegers,"0")==0)break;add();i++;}//如果前面都是0,就继续往前数int j=103;while(sum[j]==0){j--;}for(i=j;i>=0;i--)printf("%d",sum[i]);printf("\n");return 0;}
后来又看了别人的结题报告 ,用STL真的很爽,string已经写成一个类了,很多函数直接调用
别人的代码
#include <iostream>#include <string>using namespace std;#define SIZE 105string s;int sum[SIZE]={0};int main(){ int i,j; while(cin>>s&&s.compare("0")) { for(j=SIZE-1,i=s.size()-1;i>=0;--i) sum[j--]+=(s[i]-'0'); } j=0;//处理时去除前面的零 while(!sum[j]) ++j; if(j>=SIZE) printf("0"); for(i=SIZE-1;i>=j;i--)//处理进位 { sum[i-1]+=sum[i]/10; sum[i]=sum[i]%10; } i=0;//输出前去除前面的零 while(!sum[i]) ++i; for(;i<SIZE;i++) cout<<sum[i]; cout<<endl;}
- poj 1503 Integer Inquiry高精度
- poj 1503 Integer Inquiry【高精度】
- POJ 1503 Integer Inquiry 高精度
- POJ 1503 Integer Inquiry(高精度运算)
- POJ 1503 Integer Inquiry 高精度加法
- poj 1503Integer Inquiry(高精度 水题)
- POJ 1503 Integer Inquiry 高精度加法
- POJ 1503 Integer Inquiry(高精度)
- (高精度运算4.7.23)POJ 1503 Integer Inquiry(大数累加)
- POJ 1503 && HDU 1047 Integer Inquiry(高精度)
- POJ – 1503 Integer Inquiry Integer Inquiry
- POJ 1503 Integer Inquiry
- poj 1503 Integer Inquiry
- POJ 1503 Integer Inquiry
- poj 1503 Integer Inquiry
- POJ 1503 Integer Inquiry
- POJ 1503 Integer Inquiry
- POJ---1503 Integer Inquiry
- Delphi pointer .
- JQuery插件开发【转】
- Pointer 和 @
- android的触摸事件处理
- IOS学习笔记56-IOS7状态栏适配方法一
- poj 1503 Integer Inquiry【高精度】
- JS和CSS压缩工具---YUI Compressor
- lsof | grep deleted
- Linux 2.4.x 网络协议栈QoS模块(TC)的设计与实现
- mysql数据库版本查看
- boundingRectWithSize:options:attributes:context:
- WM_SIZING和WM_SIZE区别及EasySize类的使用
- S5pv210 出现一个离奇wince6.0 activesync 软件连接问题
- 冒泡排序的Java实现