
大数
vsooda
这个作者很懒,什么都没留下…
展开
-
HDU 2001
//数据精度题#include#includeint 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 · 3092 阅读 · 0 评论 -
HDU 1753 大数 strchr
#include#includeint 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 · 583 阅读 · 0 评论 -
HDU 1316 大数
打表方法有点特别对齐方法也不错。#include #include #include #include #define M 105char 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 · 1019 阅读 · 0 评论 -
HDU 1134 大数取模 使用大数模板
#include #include #include #include using namespace std; char str[1010];int modd;#define MAXN 9999#define MAXSIZE 10#define DLEN 4class BigNum{ private: int a[1010]; //可以控制大数的位数 i原创 2013-01-25 20:35:44 · 4686 阅读 · 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 · 1783 阅读 · 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 · 626 阅读 · 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 · 644 阅读 · 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 · 1837 阅读 · 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 · 734 阅读 · 0 评论 -
HDU 1250 高精度
这题用到大数相加,用数组的元素表示大数的各个数位的数字,(例如123,可以a[0]=3,a[1]=2,a[2]=1;)有个技巧是在网上学到的,每个数组元素存储八位数可以提高效率。先预处理,再输入数据。#includeint a[10000][260]={0}; //每个元素可以存储8位数字,所以2005位可以用260个数组元素存储。int main(){ int i,j,n; a[1原创 2012-09-16 20:46:12 · 1862 阅读 · 0 评论 -
HDU 2057
#includeint main(){__int64 a,b;while(scanf("%I64X%I64X",&a,&b)!=EOF)printf(a+breturn 0;}原创 2012-02-18 12:40:47 · 984 阅读 · 0 评论 -
c++ 大数类 大数模板
转自:http://blog.youkuaiyun.com/hackbuteer1/article/details/6595881分别使用C++中的运算符重载的方法来实现大数之间的数学运算,包括加法、减法、乘法、除法、n次方、取模、大小比较、赋值以及输入流、输出流的重载。。 并且使用这个大数模板,顺利AC了HDOJ上的1134这个题目的Catalan数计数问题。。http://acm.转载 2013-01-25 20:23:36 · 23269 阅读 · 9 评论