在OJ里面经常遇到一些比较大的数,这是int已经不够用了,此时我们可以考虑用
long long int和__int64
关于long long int的输入输出是这样的:
c的写法输入一个十进制的数 scanf("%ld",&a); printf("%ld",a);
c++的写法比较简单易记 cin>>a;cout<<a;这样就行了
这里贴几个大整数的题目:
http://acm.hdu.edu.cn/showproblem.php?pid=1002
这题是大整数的相加的问题,source code 如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main ()
{
int T,i,j,k,l,m,len1,len2,len3;
char a[1111],b[1111],c[1111];
scanf ("%d",&T);
for (i=1;i<=T;i++)
{
scanf ("%s%s",a,b);
printf ("Case %d:/n",i);
printf ("%s + %s= ",a,b);
len1=strlen(a);
len2=strlen(b);
if (len1<len2)
{ strcpy(c,a);strcpy(a,b);
strcpy(b,c);
len3=len1;
len1=len2;
len2=len3;
}
for (k=0;k<len1;k++)
a[k]=a[k]-'0';
for (k=0;k<len2;k++)
b[k]=b[k]-'0';
for (l=len1-1,m=len2-1;i>=0;i--,m--)
a[l]=a[l]+b[m];
for (l=len2-1;i>0;i--)
if (a[l]>=10)
{ a[l]-=10;
a[l-1]++;
}
}
for (l=0;l<len1+1;l++)
printf ("%d",a[i]);
printf ("/n");
system ("pause");
}
这里是讲数字符号化,具体的读者自己慢慢研究