240
功不唐捐,玉汝于成😡。

int和longlong的范围

 

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年的时间可以复制出2个自己,然后就失去复制能力。
每年X星系都会选出1个新出生的机器人发往太空。也就是说,如果X星系原有机器人5个,
1年后总数是:5 + 9 = 14
2年后总数是:5 + 9 + 17 = 31

如果已经探测经过n年后的机器人总数s,你能算出最初有多少机器人吗?
输入
输入一行两个数字n和s,用空格分开,含义如上。n不大于100,s位数不超过50位。
输出
要求输出一行,一个整数,表示最初有机器人多少个。
 
样例输入
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进行储存完全没问题

 

posted @ 2019-05-14 17:16  BigXun  阅读(6160)  评论(0编辑  收藏  举报