拼命拯救自己的ACM

ACM精度简单题

大数相加

描述

求两个不超过200位的非负整数的和。

输入有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。输出一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。

样例输入

22222222222222222222
33333333333333333333

样例输出

55555555555555555555

AC代码
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>

using namespace std;
#define MAX_LEN 200
int an1[MAX_LEN + 10];
int an2[MAX_LEN + 10];
char szLine1[MAX_LEN + 10];
char szLine2[MAX_LEN + 10];

int main()
{
    cin >> szLine1;
    cin >> szLine2;
    int i, j;
    memset(an1, 0, sizeof(an1));
    memset(an2, 0, sizeof(an2));
    int len1 = strlen(szLine1);
    int len2 = strlen(szLine2);
    int maxx = max(len1, len2) + 1;
    for (i = len1 - 1, j = 0; i >= 0; i--){
        an1[j++] = szLine1[i] - ‘0‘;
    }
    for (i = len2-1,j=0; i>=0 ; i--){
        an2[j++] = szLine2[i] - ‘0‘;
    }

    for (j = 0; j < maxx; j++){
        an1[j] += an2[j];
        if (an1[j] >= 10){
            an1[j] -= 10;
            an2[j + 1]++;
        }
    }

    for (i = maxx; (i >= 0) && (an1[i] == 0); i--);
    if (i >= 0)
        for (; i >= 0; i--)
            cout << an1[i];
    else cout << "0";

    return 0;
}

大数乘法

算法思想:每个位相乘的结果放在一个位置上,错位叠加后,对于大于10的部分,十位加到前面,保留个位。

AC代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<string>
 5 #include<cstring>
 6 #define MAX_LEN 200
 7 using namespace std;
 8
 9 char s1[MAX_LEN + 10];
10 char s2[MAX_LEN + 10];
11 int an1[MAX_LEN + 10];
12 int an2[MAX_LEN + 10];
13 int ans[MAX_LEN * 2 + 10];
14
15 int main()
16 {
17     cin >> s1;
18     cin >> s2;
19     memset(an1, 0, sizeof(an1));
20     memset(an2, 0, sizeof(an2));
21     memset(ans, 0, sizeof(ans));
22     int len1 = strlen(s1);
23     int len2 = strlen(s2);
24     int maxx = len1 + len2 + 1;
25     int i, j;
26     for (i = 0, j = len1 - 1; j>=0; j--){
27         an1[i++] = s1[j] - ‘0‘;
28     }
29     for (i = 0, j = len2 - 1; j >= 0; j--){
30         an2[i++] = s2[j] - ‘0‘;
31     }
32     for (i = 0; i < len2; i++){
33         for (j = 0; j < len1; j++){
34             ans[i + j] += an2[i] * an1[j];
35         }
36     }
37     for (i = 0; i < maxx; i++){
38         if (ans[i] >= 10){
39             ans[i + 1] += ans[i] / 10;
40             ans[i] %= 10;
41         }
42     }
43     for (i = maxx; (ans[i] == 0 && (i >= 0)); i--);
44         if (i >= 0)
45             for (; i >= 0; i--)
46                 cout << ans[i];
47         else
48             cout << "0";
49     return 0;
50 }
时间: 2024-10-11 11:43:23

拼命拯救自己的ACM的相关文章

ACM退役记&amp;&amp;回忆录

ACM退役记 2017.9.19星期二,"九一八事变"八十六年后的第二天,永远记住这个日子,刚好是我报名ACM到现在,刚好满一年,而今天正是我注册杭州电子科技大学OJ的时间(就是这一天报名的),附上小图一张! 嗯,我退役了,真的退役了,从此告别了ACM的生涯,虽然有很多遗憾,虽然有很多不舍,虽然有很多很多不情愿,但是,,,还是没能阻止这一天的到来,可能你们会认为我退役的有点早,可能你们也会有很多疑惑,为啥这么优秀这么强的大佬竟然退役的这么早...(自嘲一下,其实菜的一逼) 其实这个原因

(转)女生应该找一个玩ACM的男生

1.强烈的事业心 将来,他也一定会有自己热爱的事业.而且,男人最性感的时刻之一,就是他专心致志做事的时候.所以,找一个机会在他全神贯注玩ACM的时候,从侧面好好观察他,你就会发现我说的话没错. 2.永不放弃的精神 在比赛刚开始,神牛队就飘崎岖.玩ACM的男生不会退缩,而是毅然决定一个人继续AC下去,靠着自己对胜利的渴望,拿下一个气球.两个气球.三个气 球……N个气球!即使WA了10+次也始终如一的战斗到最后一刻.如果没有不服输的精神,早就放弃了.所以,想要在玩ACM的男性里找一个容易服输的人很

2014 ACM/ICPC Asia Regional Guangzhou Online

Wang Xifeng's Little Plot http://acm.hdu.edu.cn/showproblem.php?pid=5024 预处理出每个点八个方向能走的最远距离,然后枚举起点,枚举方向,每走一步都要枚举左转和右转的情况,因为预处理好了,所以可以直接算出来. 1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 const int M=128; 5 char a[M][M]; 6 in

·转帖」 真正的ACM

TEAM对我意味着什么 ceshi 2008-04-16 22:25:16.0 这个世界是假的,而TEAM是真的.什么是"假"?活在这个世界上,要说很多违心的话,做很多违心的事.为了自己或者小集体的利益,有的时候要说谎,有的时候要装傻,甚至要恭敬地面对一些无耻小人.长久下去,你会忘记什么才是真的,会认为一些不道德的事是理所当然的,因为它们普遍地存在于这个世界上.TEAM是一个避风港.更确切说,是交大ACM队这样一个最优秀的TEAM.只有这样的TEAM,才能提供一个"真&quo

弱校ACM奋斗史 (转)

题解:还记得2年前的一个晚上,我和一个女孩一起写完了这篇文章.写完后,她哭了,我笑了.然后,她走了,我哭了.2年后,我又找到她,这次,我没有让她走掉,她成了我的新娘. 不知道什么时候,开始知道ACM:也不知道什么时候,开始喜欢上ACM.但是,我知道,我喜欢上了,而且不会后悔.我是大一的时候进的学校ACM队,那个时候,一切都是冰冷的,华东理工大学,在别人的眼里,只是每次给别人垫底的学校,次次如此.但是,我们不甘心,我们从不甘心,当我们主力队员中的一个,一个月拼命集训,瘦了很多的时候,突然,我有一种

[ACM] hdu 2191 珍惜如今,感恩生活 (多重背包)

Problem Description 急!灾区的食物依旧短缺! 为了拯救灾区同胞的生命,心系灾区同胞的你准备自己採购一些粮食支援灾区,如今如果你一共同拥有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,而且仅仅能整袋购买. 请问:你用有限的资金最多能採购多少公斤粮食呢? 后记: 人生是一个充满了变数的生命过程,天灾.人祸.病痛是我们生命历程中不可预知的威胁. 月有阴晴圆缺,人有旦夕祸福,未来对于我们而言是一个未知数.那么,我们要做的就应该是珍惜如今,感恩生活-- 感谢父母,他们给

ACM有什么用(转)

大学四年走到这里也快要画上一个句号了 还有两三个月的时间就要告别本科了 只是现在还不知道能不能留在这片熟悉的校园里 这四年就这样的走了过来 时间过得很快 很难想象去年的校赛居然不是在昨天发生的 这一年里发生了很多的事情 这四年里也发生了很多很多的事情 常常想 如果我大一时没有遇到chenggang学长 或是说后来也一直没有接触acm 我会是个什么样子? 我大一是玩过来的我之后会有所改变像changjiang shuangshuang他们那样努力去学习专业争取保研吗?大概不会 如果没有这么一件吸引

互联网神奇药拯救高等教育

高等教育现已成为福利国家巨大成功的事情之一.曾经只是一小部分人特权的东西如今业已成为中等阶级的一种应得权益,这主要是由于政府支持.数据显示,今年夏天,约有350万美国人和500万欧洲人从高等教育毕业. 在一些新兴国家,高等教育也在蓬勃发展,不过,自从亚里斯多德在雅典学园(Athenian Lyceum)教学以来,高等教育的教学模式并没有出现太大的变化--年轻的学生仍然在规定的时间聚集同一地方,聆听老师授课. 然而,这种传统的教学方式如今正开始经历着重大变革,主要是由于以下三大因素的影响:教育成本

『ACM C++』HDU杭电OJ | 1425 - sort (排序函数的特殊应用)

今天真的是累哭了,周一课从早八点半一直上到晚九点半,整个人要虚脱的感觉,因为时间不太够鸭所以就回头看看找了一些比较有知识点的题来总结总结分析一下,明天有空了就开始继续打题,嘻嘻嘻. 今日兴趣电影: <超能查派> 这是一部关于未来人工智能的一个故事,感觉特别有思维开拓性,一个程序员写出了真正的AI智能机器人,可以从婴儿开始学习,然后以极快极强的学习速度不断成长,最后拯救身边人的故事.很感人,强烈推荐哈哈~ 爱奇艺:https://www.iqiyi.com/v_19rroly1wo.html?f