unsigned int 0~4294967295 (10位数,4e9)
int -2147483648~2147483647 (10位数,2e9 2^31 - 1)
long long: -9223372036854775808~9223372036854775807 (19位数, 9e18 ) 2^63 - 1
unsigned long long:0~18446744073709551615 (20位数,1e19) 2^64 - 1
int的范围是:-2147483648---2147483647 (10位)
long和int没有区别
long long的范围是:-9223372036854775808---9223372036854775807 (19位)
double的范围是:-1.79769e+308---1.79769e+308//超过20位之后用科学记数法即可
long double的范围是:-1.18973e+4932---1.18973e+4932
例题:
问题 1831: [蓝桥杯][2015年第六届真题]机器人繁殖(数学公式推导题)
时间限制: 1Sec 内存限制: 128MB 提交: 409 解决: 76
每年X星系都会选出1个新出生的机器人发往太空。也就是说,如果X星系原有机器人5个,
1年后总数是:5 + 9 = 14
2年后总数是:5 + 9 + 17 = 31
如果已经探测经过n年后的机器人总数s,你能算出最初有多少机器人吗?
2 31
5
#include<iostream> #include<cmath> using namespace std; int main () { double num; int n; cin>>n>>num; n++; num-=n; cout<<num/(double)(pow(2,n)-1)+1<<endl; return 0; }
50位用double进行储存完全没问题