oj 1002题 (大数题)

#include <stdio.h>
#include <string.h>
int main(void)
{
    int q,j,h,k,l;
    int d;
    char s1[1001],s2[1001];//题目要求位数不大于1000
    scanf("%d",&h);
    for(l=1;l<=h;l++){
        int c[1001]={0}, a[1001]={0},b[1001]={0};//这样可以令数组内全部元素为0
        scanf("%s %s",&s1,&s2);
        int cd1,cd2,cd3,cdmax,cdmin;
        cd1=strlen(s1);
        cd2=strlen(s2);
        cdmax=cd1>cd2?cd1:cd2;
        for(q=0,j=cd1;q<cd1;q++,j--)
            a[q]=s1[j-1]-48;
        for(q=0,j=cd2;q<cd2;q++,j--)
            b[q]=s2[j-1]-48;
        for(k=0,d=0;k<cdmax;k++)
        {
            c[k]=(a[k]+b[k]+d)%10; //个个位相加满十进一
            d=(a[k]+b[k]+d)/10;
         }
         printf("Case %d:\n%s +%s =",l,s1,s2);
         if(d!=0){//判断最后一位和是否大于一
             c[cdmax]=1;
             for(cd3=cdmax;cd3>=0;cd3--){
                 printf("%d",c[cd3]);
             }
         }
         else{
             for(cd3=cdmax-1;cd3>=0;cd3--){
                 printf("%d",c[cd3]);
             }
         }
         if(l!=h)//最后跳一行
             printf("\n\n");
        else
            printf("\n");
    }
    return 0;
}

题目:

Problem Description

I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.

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.

                       处理                                                                                                   1000以内 ,即使double longlong 也无法满足

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

方法步骤:将数字以字符串的方式存储,在单个位相加(用10取余),满十进一(除10),注意初始化(对前几位数赋值,后面直接默认赋0)

原文地址:https://www.cnblogs.com/yzbpxx/p/10335855.html

时间: 2024-10-11 09:17:10

oj 1002题 (大数题)的相关文章

HDU-1041-Computer Transformation(规律题 &amp;&amp; 大数题)

Computer Transformation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6543    Accepted Submission(s): 2378 Problem Description A sequence consisting of one digit, the number 1 is initially wr

大数A+B 【杭电-1002】 附题

/* A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 209912    Accepted Submission(s): 40404 Problem Description I have a very simple problem for you. Given two integers A and B,

LeetCode OJ Linked List: 138题、109题和191题

138题:Copy List with Random Pointer 题目分析: 本题思路1:第一步,你需要遍历一下链表,对于每个结点,你都new出一个连接在其后面.第二步,调整random指针.第三步,把复制的链表与原链表断开.时间复杂度O(N),空间复杂度O(1). 本题思路2:第一步,仍需要遍历一下链表,对于每个结点都new出一个节点,但不连接在其后面,把这种旧节点到新结点的映射关系,存储在map中.第二步,调整random指针.时间复杂度O(N),空间复杂度O(N). 本题思路3:第一步

网易2017春招笔试真题编程题集合题解

01 双核处理 题目 一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务.n个任务可以按照任意顺序放入CPU进行处理,现在需要设计一个方案让CPU处理完这批任务所需的时间最少,求这个最小的时间. 输入描述 输入包括两行:第一行为整数n(1 ≤ n ≤ 50)第二行为n个整数lengthi,表示每个任务的长度为length[i]kb,每个数均为1024的倍数. 输出描述输出一个整数,表示最少需

lintcode容易题1-10题

难度系数排序,容易题1-10题: Cosine Similarity new  Fizz Buzz  O(1)检测2的幂次  x的平方根  不同的路径  不同的路径 II  两个字符串是变位词  两个链表的和 中位数 主元素 Cosine Similarity 题目: Cosine similarity is a measure of similarity between two vectors of an inner product space that measures the cosine

HDU 2966 Aragorn&#39;s Story 树链剖分第一题 基础题

Problem Description Our protagonist is the handsome human prince Aragorn comes from The Lord of the Rings. One day Aragorn finds a lot of enemies who want to invade his kingdom. As Aragorn knows, the enemy has N camps out of his kingdom and M edges c

杭电oj 1002

1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 int nCases; 5 int m[1001], n[1001]; 6 char a[1001], b[1001]; 7 int main() 8 { 9 scanf("%d", &nCases); 10 for(int i = 1; i <= nCases; ++i) 11 { 12 memset(m,

Web前端错题模糊题记录

title: Web前端错题模糊题记录 toc: true date: 2018-09-20 10:04:36 categories: Web tags: HTML CSS JavaScript HTML 元素的alt和title有什么异同? alt和title同时设置的时候,alt作为图片的替代文字出现,title是图片的解释文字. 关于html5标签? <audio> 标签定义声音,比如音乐或其他音频流. <canvas> 标签定义图形,比如图表和其他图像.<canvas

剑指Offer系列之题11~题15

目录 11.矩形覆盖 12.二进制中1的个数 13. 数值的整数次方 14.调整数组顺序使奇数位于偶数前面 15.链表中倒数第k个结点 11.矩形覆盖 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 斐波那契数列的应用 第一次竖着放一块类比为走一步,第一次横着放两块类比为走两步 代码与上面的斐波那契数列类题目类似,此处不再赘述:剑指Offer系列之题6~题10. 12.