首页 > 学院 > 开发设计 > 正文

1198_a+b

2019-11-10 21:50:49
字体:
来源:转载
供稿:网友
// 1198_a+b.cpp : 定义控制台应用程序的入口点。//题目1198:a+b//时间限制:1 秒内存限制:32 兆特殊判题:否提交:8598解决:2968//题目描述://实现一个加法器,使其能够输出a+b的值。//输入://输入包括两个数a和b,其中a和b的位数不超过1000位。//输出://可能有多组测试数据,对于每组数据,//输出a+b的值。//样例输入://2 6//10000000000000000000 10000000000000000000000000000000//样例输出://8//10000000000010000000000000000000//来源://2010年华中科技大学计算机研究生机试真题#include "stdafx.h"#include "stdio.h"#include "iostream"#include "string"#include "algorithm"using namespace std;int main(){ string a,b; char c[1010]; while(cin>>a>>b){ reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); int cn,i,j; cn = i = 0; while(i<a.length() && i<b.length()){ c[i] = (a[i]-'0' + b[i]- '0' + cn)%10 + '0'; cn = (a[i]-'0' + b[i] -'0'+ cn)/10; i++; } while(i<a.length()){ c[i] = (a[i]-'0' + cn)%10 + '0'; cn = (a[i]-'0' + cn)/10; i++; } while(i<b.length()){ c[i] = (b[i]-'0' + cn)%10 + '0'; cn = (b[i] -'0'+ cn)/10; i++; } if(cn==1){ c[i] = 1+ '0'; c[i+1] = '/0'; reverse(c,c+i+1); } else{ c[i] = '/0'; reverse(c,c+i); } cout<<c<<endl; } return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表