解题思路:
看到位数是50位,稍微虚了一下,不过看之前的大佬解释,double足以承受这个规模的打击。不需要高精度。
又查了一下低精度类型数据的范围:
以下范围均在DEV中测试
int的范围是:-2147483648---2147483647 (10位)
long和int没有区别
long long的范围是:-9223372036854775808---9223372036854775807 (19位)
double的范围是:-1.79769e+308---1.79769e+308
long double的范围是:-1.18973e+4932---1.18973e+4932
好了,规模的问题考虑清楚了,下面就是推公式了:
原谅我偷懒不想MathType...
直接把x的值,即题目要求的初始的机器人的个数求出来,然后惨无人道地输出就行了
注意事项:
1.数据规模要注意,但是double足够。
2.能推公式就推公式
参考代码:
#include <iostream> #include <cmath> using namespace std; int main(void) { double x,n,S; cin >> n >> S; x = (S - n + 2*pow(2, n) - 2)/(2*pow(2, n) - 1); cout << x << endl; return 0; }
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:657 |
上车人数 (C语言代码)浏览:1192 |
点我有惊喜!你懂得!浏览:1336 |
校门外的树 (C语言代码)浏览:1130 |
C二级辅导-公约公倍 (C语言代码)浏览:1517 |
C语言训练-素数问题 (C语言代码)浏览:1011 |
求圆的面积 (C语言代码)浏览:1294 |
IP判断 (C语言代码)浏览:785 |
简单的a+b (C语言代码)浏览:598 |
1050题解(结构体数组与结构体指针的使用)浏览:1122 |