时间过得真快,不知不觉已经一周没有更新随笔了。随笔慢慢地将变成随便的一笔吧,千万不要。
最近在实习,我负责的任务主要是后台数据的挖掘,用C#结合ORACLE数据库来实现。代码是现成的,我要做的就是确保得到正确的结果和稳定的运行。经过三天的读代码,写代码,终于初步完成。但由于现在还没开始利用这些数据,所以问题肯定较多,到时候就要一一解决了。
不说这个,昨天看了大整数加法,试着去北大网站上做了一个相似的题,最后终于ACCEPT。
求n个大整数相加
1
#include<stdio.h>
2
#include<string.h>
3
#define MAX_LEN 110
4
int an1[MAX_LEN][MAX_LEN+10];
5
char szLine[MAX_LEN+10];
6
7
8
int main()
9

{
10
int i,j,n,nLen;
11
memset(an1,0,sizeof(an1));
12
for(n=0;n<MAX_LEN;n++)
13
{
14
scanf("%s",szLine);
15
if(!strcmp(szLine,"0"))
16
break;
17
nLen=strlen(szLine);
18
j=0;
19
for(i=nLen-1;i>=0;i--)
20
an1[n][j++]=szLine[i]-'0';
21
}
22
for(i=1;i<n;i++)
23
for(j=0;j<MAX_LEN;j++)
24
{
25
an1[0][j]+=an1[i][j];
26
if(an1[0][j]>=10)
27
{
28
an1[0][j]-=10;
29
an1[0][j+1]++;
30
}
31
}
32
bool bStartOutput=false;
33
for(i=MAX_LEN;i>=0;i--)
34
{
35
if(bStartOutput)
36
printf("%d",an1[0][i]);
37
else if(an1[0][i])
38
{
39
printf("%d",an1[0][i]);
40
bStartOutput=true;
41
}
42
43
}
44
if(!bStartOutput)
45
printf("%d",0);
46
return 0;
47
}
48
这题要注意的是,首先,00这样的输入是合法的,所以判断程序结束时,不能单纯的判定第一个字符为‘0’;然后就是00+00输出0,就是结果为0时的输出。
推荐一本书,程序设计导引及在线实践,我现在正在看,也是bbs上别人推荐的,很适合acm或是想研究算法的新手。
posted on 2010-08-13 19:44
douhui 阅读(257)
评论(0) 编辑 收藏 引用 所属分类:
算法初步