蓝桥杯 18. 机器人繁殖
机器人繁殖
原题目链接
题目描述
X 星系的机器人可以自动复制自己。它们用 1 年的时间可以复制出 2 个自己,然后就失去复制能力。
每年 X 星系都会选出 1 个新出生的机器人发往太空。也就是说,如果 X 星系原有机器人 5 个,1 年后总数是:5 + 9 = 14,2 年后总数是:5 + 9 + 17 = 31。
如果已经探测经过 n 年后的机器人总数 s,你能算出最初有多少机器人吗?
输入描述
输入一行两个数字 n 和 s,用空格分开,含义如上。
- n 不大于 100
- s 位数不超过 50 位
输出描述
输出一行,一个整数,表示最初有机器人多少个。
输入输出样例
示例 1
输入
2 31
输出
5
示例 2
输入
97 2218388550399401452619230609499
输出
8
c++代码
#include<bits/stdc++.h>using namespace std;int main() {double n, s;cin >> n >> s;cout << (s + pow(2, n + 1) - 2 - n) / (pow(2, n + 1) - 1);return 0;
}//by wqs
题目解析
自己可以去推理一下数学规律
然后看数据范围,必须要用double去写