大数
vsooda
这个作者很懒,什么都没留下…
展开
-
HDU 2001
//数据精度题 #include #include int main() { double a,b,c,d; double r; while(scanf("%lf %lf %lf %lf",&a,&b,&c,&d)!=EOF) { r=sqrt((a-c)*(a-c)+(b-d)*(b-d)); printf("%.2f\n",r); } return 0; }原创 2012-02-14 20:51:29 · 3072 阅读 · 0 评论 -
HDU 1753 大数 strchr
#include #include int a[1010],b[1010],sum[1010]; char str[1010]; int main() { int i,j,k,n,s,c; while(scanf("%s",str)==1) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(sum,0,sizeof(su原创 2013-01-18 16:44:15 · 567 阅读 · 0 评论 -
HDU 1316 大数
打表方法有点特别 对齐方法也不错。 #include #include #include #include #define M 105 char a[M+2], b[M+2]; char book[1000][M+2]; int cmp(char *s1, char *s2) { for(int i = 0; i <= M; i++) { if(i == M) { r原创 2013-01-18 15:51:17 · 993 阅读 · 0 评论 -
HDU 1134 大数取模 使用大数模板
#include #include #include #include using namespace std; char str[1010]; int modd; #define MAXN 9999 #define MAXSIZE 10 #define DLEN 4 class BigNum { private: int a[1010]; //可以控制大数的位数 i原创 2013-01-25 20:35:44 · 4646 阅读 · 0 评论 -
HDU 1066 阶乘最后非零位 应用acm模板
模板的第一程序,直接应用。 #include #include #define maxn 10001 const int mod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2}; int lastdigit(char buf[]) { int len=strlen(buf),a[maxn],i,c,ret=1; if(原创 2012-09-22 19:49:13 · 1767 阅读 · 1 评论 -
HDU 1047 使用大数模板,轻松AC
#include #include using namespace std; string add(string s1,string s2){ //大数 s1 + s2 if(s1.length()<s2.length()){ string temp=s1; s1=s2; s2=temp; } for(int i=s1.length()-1,j原创 2012-09-20 16:37:46 · 607 阅读 · 0 评论 -
HDU 1042 与1050类似,每个整形保存几位,然后整个拼凑起来
用大数模板,加法转乘法超时了,然后用二进制压缩又失败了。。 最后用与1250类似的办法拼凑 #include using namespace std; int num[8000]; int main() { int i , j, n, t , carry; while(scanf("%d", &n)!= EOF) {原创 2012-09-19 20:56:19 · 626 阅读 · 0 评论 -
HDU 1041 递推 + 大数模板
递推:0->10 ; 1->01; 00->1010; 10->0110; 01->1001; 11->0101; 假设a[i]表示第i 步时候的00的个数,由上面的可以看到,00是由01 得到的,所以只要知道a[i-1]的01的个数就能够知道a[i]的00的个数了,那a[i-1]怎么求呢,原创 2012-09-19 17:25:12 · 1811 阅读 · 0 评论 -
HDU 1715 使用大数模板
#include #include using namespace std; string Add(string fNum,string sNum) { if( fNum.length() < sNum.length() ) fNum.swap(sNum); string A = "0"; A += fNum; for ( int i=1;i<=fNum.length();i++)转载 2012-09-17 18:32:18 · 718 阅读 · 0 评论 -
HDU 1250 高精度
这题用到大数相加,用数组的元素表示大数的各个数位的数字,(例如123,可以a[0]=3,a[1]=2,a[2]=1;)有个技巧是在网上学到的,每个数组元素存储八位数可以提高效率。先预处理,再输入数据。#include int a[10000][260]={0}; //每个元素可以存储8位数字,所以2005位可以用260个数组元素存储。 int main() { int i,j,n; a[1原创 2012-09-16 20:46:12 · 1841 阅读 · 0 评论 -
HDU 2057
#include int main() { __int64 a,b; while(scanf("%I64X%I64X",&a,&b)!=EOF) printf(a+b return 0; }原创 2012-02-18 12:40:47 · 962 阅读 · 0 评论 -
c++ 大数类 大数模板
转自:http://blog.csdn.net/hackbuteer1/article/details/6595881 分别使用C++中的运算符重载的方法来实现大数之间的数学运算,包括加法、减法、乘法、除法、n次方、取模、大小比较、赋值以及输入流、输出流的重载。。 并且使用这个大数模板,顺利AC了HDOJ上的1134这个题目的Catalan数计数问题。。http://acm.转载 2013-01-25 20:23:36 · 23210 阅读 · 9 评论