2 chenyonken chenyonken 于 2016.01.24 18:29 提问

以特定格式输出两个数的和

Input
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.

output
For each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line is the an equation "A + B = Sum", Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.

Sample Input
2
1 2
112233445566778899 998877665544332211

Sample Output
Case 1:
1 + 2 = 3

Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110

2个回答

caozhy
caozhy   Ds   Rxr 2016.01.24 19:01
AgoniAngel
AgoniAngel   Rxr 2016.01.24 20:39

//一看就是ACM题,贴上AC代码

#include<stdio.h>
#include<string.h>
int main()
{
    char a[1000],b[1000],c[1001];
    int i,j=1,p=0,n,n1,n2;
    scanf("%d",&n);
  while(n--)
    {
        scanf("%s %s",a,b);
        printf("Case %d:\n",j);
        printf("%s + %s = ",a,b);
        n1=strlen(a)-1;
        n2=strlen(b)-1;
        for(i=0;n1>=0||n2>=0;i++,n1--,n2--)
        {
            if(n1>=0&&n2>=0){c[i]=a[n1]+b[n2]-'0'+p;}
            if(n1>=0&&n2<0){c[i]=a[n1]+p;}
            if(n1<0&&n2>=0){c[i]=b[n2]+p;}
            p=0;
            if(c[i]>'9'){c[i]=c[i]-10;p=1;}
        }
        if(p==1)  printf("%d",p);
        while(i--)
            printf("%c",c[i]);
        j++;
        if(n!=1) printf("\n\n");
        else printf("\n");
    }
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
汇编语言:输入两个数,不大于30,有提示,比较两个数字,如果相等,计算和,如果不相等,计算平均值,并且都要以2进制的格式输出,按照升序输出,计算两个数字各占和的百分比,并且按照“%”的格式输出。
题目:输入两个数不大于30,有提示,比较两个数字,如果相等,计算和,如果不相等,计算平均值,并且都要以2进制的格式输出,按照升序输出,计算两个数字各占和的百分比,并且按照“%”的格式输出。 下面是我编写的程序,功能全部实现,并且编译运行通过。 运行结果如下: 下面是我写的源代码,希望各位指点。 data segment num1 db ? num2 db ? sum db ?
Java输出特定时间段特定格式时间信息
场景:利用Java语言输出连续某一段时间固定格式的时间信息 Java代码 String startDate = "20150916"; String endDate = "20150919"; SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Date date1 = sdf.parse(startDate);
有序数列中查找和为某定值的两个数
问题描述: 输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。 如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 算法:
汇编课程设计--数的运算
汇编课程设计–数的运算 基本要求 从键盘上输入两个小于 100 的十进制正整数,求出这两个数的所有公约数,求出这两个数的平方差,若是负的要输出负号。计算两个数各占和的百分比,并且按照“ %”的格式输出(小数点后保留两位)。数据的输入和结果的输出都要有必要的提示,且提示独占一行,要使用到子程序。 系统模块设计 系统的模块设计 关键算法流程图 求最大公约数流程图求一个数的所有因子流程图计算百分比的流程
javascript两行代码按指定格式输出日期时间
javascript两行代码按指定格式输出日期时间,具体看代码: // // 格式化显示日期时间 // // 待显示的日期时间,例如new Date() // 需要显示的格式,例如yyyy-MM-dd hh:mm:ss function date2str(x,y) { var z ={y:x.getFullYear(),M:x.getMonth()+1,d:x.get
SQL 语句将特定数据以指定格式输出到文本文件中
在做数据备份的时候,我们通常会遇到将数据以指定格式输出到文本文件中这种情况。 在MySQL 中提供了一种SELECT 语法,专供用户通过SQL 语句将某些特定数据以指定格式输出到文本文件中,同时也提供了实用工具和相关的命令可以方便的将导出文件原样再导入到数据库中。 该命令有几个需要注意的参数如下: 实现字符转义功能的“FIELDS ESCAPED BY ['name']” 将SQL 语句
算法题8 在给定数列中查找和为给定值的两个数字
<br />  <br />题目:输入一个已经按升序排序过的任意实数数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。<br />例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。<br />分析:如果我们不考虑时间复杂度,最简单想法的莫过去先在数组中固定一个数字,再依次判断数组中剩下的n-1个数字与它的和是不是等于输入的数字。可惜这种思路需要的时间复杂度是O(n2)。<b
[Leetcode #1]Two Sum 从数组中找出和为特定值的两个数
原题地址:https://leetcode.com/problems/two-sum/ 题目的要求是:从数组中找出两个数,使其和为特定值target。 最直接的做法(洋气一点叫Brute Force)就是从第一个数开始,一个一个往后找呗,但是作为一道面试题怎么可能这么简单呢,面试官肯定会问:你的算法时间复杂度是O(n2),有没有办法降到O(n)呢?可以反过来想一想:给你一个数x,要求你从数组里
C++按一定格式输出到控制台,或者文件中
▲setw(n)用法: 通俗地讲就是预设宽度 如 cout 结果是: (空格)(空格)255 ▲setfill(char c) 用法 : 就是在预设宽度中如果已存在没用完的宽度大小,则用设置的字符c填充 如 cout 结果是: @@255 ▲setbase(int n) : 将数字转换为 n 进制. 如 cout cout cout 结果是: (空格)(空格)377 (
LeetCode 1 两数之和
给定一个整数数列,找出其中和为特定值的那两个数。你可以假设每个输入都只会有一种答案,同样的元素不能被重用。示例:给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]示例代码:#定义函数时间复杂度o(n2) def twoSum(self,nums,target):     for i i...