2012年9月22日
摘要: 做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。 那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展了。不同的编译器对64位整数的扩展有所不同。基于ACM的需要,下面仅介绍VC6.0与g++编译器的扩展。 VCVC6.0的64位整数分别叫做__int64与unsigned __int64,其范围分别是[-2^63, 2^6.. 阅读全文
posted @ 2012-09-22 11:19 @ 小浩 阅读(1192) 评论(0) 推荐(0) 编辑
摘要: 此题是一道递推题~!注意规律 啊 第n个的排法等于第n-1个加上第n-2个即 啊a[n]=a[n-1]+a[n-2];此外注意类型 是long long 就OK了!#include<iostream>using namespace std;int main(){int n,i;long long a[100];while(cin>>n){ a[1]=1; a[2]=2; for(i=3;i<=n;i++) a[i]=a[i-1]+a[i-2]; cout<<a[n]<<endl; }return 0;} 阅读全文
posted @ 2012-09-22 10:59 @ 小浩 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 此题也是一道递推问题!注意类型 long long和A[i]=A[i-1]+A[i-2];就ok了!呵呵!#include<iostream>using namespace std;int main(){int n,i,a,b,k=0;long long A[100];cin>>n;getchar();while(k<n){ cin>>a>>b; A[a]=0;A[a+1]=1;A[a+2]=2;for(i=a+3;i<=b;i++) A[i]=A[i-1]+A[i-2];cout<<A[b]<<endl;k+ 阅读全文
posted @ 2012-09-22 10:13 @ 小浩 阅读(300) 评论(0) 推荐(0) 编辑