1、示例:
#include <stdio.h>
#include <math.h>
int main()
{
long a,b,sum;
scanf("%ld%ld\n",&a,&b);
sum = a + b;
printf("%ld\n",sum);
return 0;
}
2、示例:超长(超100位)加法运算
#include <stdio.h>
#include <string.h>
#define N 10000
int main()
{
char num1[N] = {0},num2[N] = {0},result[N]={0};
long len_1,len_2,len;
int i;
scanf("%s %s",num1,num2);
len_1 = strlen(num1);
len_2 = strlen(num2);
len = (len_1>len_2) ? len_1:len_2;
len++;
for(i = 0 ;i<len_1&&i<len_2; i++)
{
result[len-1-i] = (num1[len_1-1-i] - '0') + (num2[len_2-1-i] - '0');
}
if(len_1 >len_2)
{
for(;i<len_1;i++)
{
result[len-1-i] = num1[len_1-1-i] - '0';
}
}
else
{
for(;i<len_2;i++)
{
result[len-1-i] = num2[len_2-1-i] - '0';
}
}
for(i = len - 1;i>0;i--)
{
if(result[i]>=10)
{
result[i] = result[i]%10;
result[i-1]++;
}
}
//判断是后位数多出一位 9+8=17变成2位数,如果没有则全部前移。并变回数字的ASC2码
if(result[0]!= 0)
{
for(i = 0;i<len;i++)
{
result[i] += '0';
}
result[len] = '\0';
}
else
{
for(i=1;i<len;i++)
{
result[i-1] = result[i] + '0';
}
result[len-1] = '\0';
}
printf("两个数相加的结果是:\n");
puts(result);
return 0;
}
3、OJ通过的答案
#include <stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a,&b)==2)
{
printf("%d\n",a+b);
}
return 0;
}