HDU 1047(大数相加)(数组模拟)
2016-04-06 16:18
267 查看
这个题目啊,其实扎实的做的话应该并不难,然而我想看是统一用字符串,还是再转化成数组,然后看了别人的题解,傻冒一样的像别人一样谢了getchar();真是傻冒了,我用的scanf("%s",str),跟它有个什么关系,难道是这几天有点急功近利,所以才着急看别人的思路,淡定啊,自己的才是最好的!!
只需要用一个数组,将每次输入的字符串转化并加上就行了!(最后输出格式也要注意下)
代码如下:
只需要用一个数组,将每次输入的字符串转化并加上就行了!(最后输出格式也要注意下)
代码如下:
//HDU 1047 数组模拟大数 #include<iostream> #include<cstdio> #include<cstring> using namespace std; int main() { int n,i,j; cin>>n; while(n--) { char str[110]; int sum[110]={0};//如果放到开头定义,别忘了memset(); while(~scanf("%s",str)&&str[0]!='0') { for(i=strlen(str)-1,j=0;i>=0;i--,j++) { sum[j]+=str[i]-48;//转化成数字并加到数组上 if(sum[j]>9)//大于9进位 { sum[j]-=10; sum[j+1]+=1; } } } for(i=105;i>=0;i--) if(sum[i])//找到首位数字 break; for(j=i;j>=0;j--) cout<<sum[j]; if(i<0) cout<<0; cout<<endl; if(n) cout<<endl; } return 0; }
相关文章推荐
- C++指针的工作方式(1)
- 事物控制回滚操作
- 事务
- 求相关系数的两种方法
- 最大子数组三
- mysql远程登录权限命令
- 【Java并发编程三】闭锁
- Git常用命令学习
- 排序(1) 初级排序
- 14-面试题总结
- 太原UI设计师告你UI设计中广告(banner)设计流程
- Zookeeper的PHP实践
- pgsql检索数据库中表是否存在的时候,变量值区分大小写
- YTU 2925: 文件操作--文本文件读入
- LeetCode-100.Same Tree
- JavaScript、Ajax与JQuery的关系
- 有关树的几个经典问题
- 接口型模式之Bridge(桥接)模式
- ADO.NET提供的Connection类总结
- Linux系统环境变量和别名设置(永久生效和临时生效)