最近参加一个编程比赛,里面有个一些题库,这个题目就是其中之一.

当然,如果想锻炼自己的编程水平,可以去lintcode或者其他的网站上去刷题.

自信满满的我看到花了一个多小时才写出来,实在是汗颜.

本来实现使用string,毕竟是使用c++编程.没想好怎们写,就没有采用.

题目描述:

给定 2 个正整数 a, b,a 和 b 最多可能有 40 位,求出 a + b 的和。

输入描述:

两个正整数 a, b,a 和 b 最多可能有 40 位。一行表示一个数。

输出描述:

a + b 的和。

样例输入:

11111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222

样例输出:

3333333333333333333333333333333333333333333333333333333333333333333

实现的原理很简单,就是对齐.把字符串的位与位对齐.

把对齐的部分相加,然后在处理没有对齐的部分

#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
char * addChar(char *add1,char *add2,char *sum,int * carry);
int main()
{    char num[40] = {} ; char num2[40] = {} ;char sum[40] = {} ; cin >> num ;cin >> num2 ;//数字进行对齐if(strlen(num) == strlen(num2)){int carry = 0;addChar(num,num2,num,&carry);cout << num;return 0;}if(strlen(num) > strlen(num2)) {//num大 int sub = strlen(num)-strlen(num2);int carry = 0;char *p = num + sub;addChar(num2,p,p,&carry);cout << num << endl;}else{int sub = strlen(num2)-strlen(num);int carry = 0;char *p = num2 + sub;addChar(num,p,p,&carry);cout << num2 << endl;}
}
//相加
char * addChar(char *add1,char *add2,char *sum,int * carry)
{if(strlen(add1) == strlen(add2)){for(int i = strlen(add1) - 1;i>=0;i--){//48-57sum[i] = add1[i] + add2[i] - 48 + *carry;if(sum[i] > 57){sum[i] -= 10;*carry = 1;}else{*carry = 0;}}return sum;} else{cout << "erro ,无法相加"<<endl;return NULL; } }

  

转载于:https://www.cnblogs.com/qiny1012/p/9385443.html

给定 2 个正整数 a, b,a 和 b 最多可能有 40 位,求出 a + b 的和(C语言实现)相关推荐

  1. c语言输入一批正整数 求其中的偶数和,编程,输入一批整数,先求出其中的偶数和及奇数和,然后输出偶数和与奇数和的差...

    设计一个程序,要求输入三个整数,能求出其中最大的数并输出 #includeintmain{inti;inta1,a2,a3;printf("输入三个数:\n");scanf(&qu ...

  2. 拆数,给定两个正整数m,n(m = n),将m拆成n个数相加...(游戏)

    1. 问题 (网上看到的题目) 昨天去面试人家出了这样一道题,觉得挺简单的,但就是编不出来,只好麻烦各位高手了. 给定两个正整数m,n(m >= n),将m拆成n个数相加:m =a(1)+a(2 ...

  3. 枚举求解:试把一个正整数n拆分为若干个(不少于2个)连续正整数之和。例如:n=15,有3种拆分:15=1+2+3+4+5,15=4+5+6,15=7+8。 对于给定的正整数n,求出所有符合这种拆分要求

    试把一个正整数n拆分为若干个(不少于2个)连续正整数之和.例如:n=15,有3种拆分:15=1+2+3+4+5,15=4+5+6,15=7+8. 对于给定的正整数n,求出所有符合这种拆分要求的连续正整 ...

  4. 用递归算法,把任一给定的十进制正整数转换成八进制数输出。

    递归算法/函数 [递归]十进制转换成八进制  时间限制: 1000 ms  空间限制: 262144 KB 题目描述 用递归算法,把任一给定的十进制正整数转换成八进制数输出. 输入 输入一个正整数,表 ...

  5. 【例4-3】利用数组,给定N个正整数数据(N<=100),查找最大值和最小值并输出。【输入输出样例】Input length (N<=100):(此处括号、冒号为英文符号,后面无空格;leng

    [例4-3]利用数组,给定N个正整数数据(N<=100),查找最大值和最小值并输出. [输入输出样例] Input length (N<=100):(此处括号.冒号为英文符号,后面无空格: ...

  6. 7-99 整数的分类处理 (7 分)给定 N 个正整数,要求你从中得到下列三种计算结果:A1 = 能被 3 整除的最大整数A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数A3

    7-99 整数的分类处理 (7 分) 给定 N 个正整数,要求你从中得到下列三种计算结果: A1 = 能被 3 整除的最大整数 A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数 A3 = ...

  7. c++ 【1101】给定正整数a,b,ca,b,c。求不定方程 ax+by=cax+by=c 关于未知数xx和yy的所有非负整数解组数。

    [题目描述] 给定正整数a,b,ca,b,c.求不定方程 ax+by=cax+by=c 关于未知数xx和yy的所有非负整数解组数. [输入] 一行,包含三个正整数a,b,ca,b,c,两个整数之间用单 ...

  8. python输入一个正整数n求下列算式的值_C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值。,C语言 编写一个程序,输入一个正整数,求出它是几位数。...

    导航:网站首页 > C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值.,C语言 编写一个程序,输入一个正整数,求出它是几位数. C语言编写程序:输入一个正整数x和一个正整数n,求下 ...

  9. 给一个不多于5位的正整数,要求: ①求出它是几位数②分别输出每一位数③按逆序输出各位数字,例如原数为123,应输出321

    给一个不多于5位的正整数,要求: ①求出它是几位数②分别输出每一位数③按逆序输出各位数字,例如原数为123,应输出321 int main() {int n;int a,b,c,d,e;//个,十,百 ...

最新文章

  1. 对计算机上的浏览器的介绍,Edge浏览器的前世今生 史上最全Edge浏览器介绍
  2. python第三方库安装-python第三方库安装在哪
  3. Linux 0.11 实验环境搭建
  4. MySQL学习笔记(十二)—— MySQL的命令集(2)
  5. socket.io c++库编译不成功的注意事项
  6. 19秋学期计算机网络基础在线作业,南开19秋学期(1709、1803、1809、1903、1909)《计算机网络基础》在线作业资料答案3...
  7. 通过一个例子来理解二维码纠错机制
  8. IDEA中 @override报错的解决方法
  9. CLD: 通过挖掘实例与聚类间关系进行无监督特征学习
  10. CentOS 7.0yum安装MySQL
  11. docker-compose搭建EFK,继上篇使用filebeat+es对日志文件的过滤
  12. jsp超市仓库管理系统myeclipse开发sqlserver数据库
  13. 乐优商城项目视频及源码
  14. 深度解析网易严选和京东的会员体系,建议收藏
  15. 未来学院计算机,1968年的计算机化未来学校
  16. [转]什么?你还不会写JQuery 插件
  17. 暑期JAVA学习(41.1)TCP通信——多发多收消息
  18. android微信分享icon不能显示,微信分享 icon图片不显示问题
  19. 1139:整理药名(C C++)
  20. java计算机毕业设计高校体育器材及场地管理MyBatis+系统+LW文档+源码+调试部署

热门文章

  1. Mindjet MindManagers思维导图使用记录
  2. VLAN配置命令列表
  3. linux text mode下如何修改语言
  4. 保护模式及其编程——8086系统寄存器和系统指令
  5. AndroidWear开发之开发环境[前奏]
  6. 底层经典书籍-编译原理
  7. 树,二叉树,森林各种遍历总结:
  8. 前端二十九:两个盒子居中的练习
  9. 汇编(8086cpu): 地址寄存器
  10. oracle:自定义函数