任务描述
本关任务:编写一个函数,计算需要把纸折叠多少次(假设纸张足够大,可以无限次折叠),其厚度才能搭建一座登月纸桥,考虑到将来需要到更远的星球,所以函数需要根据具体距离计算纸张折叠的次数并返回。
编程要求
在右侧编辑器中的Begin-End之间补充代码,编写一个函数,给定一个距离和纸张的厚度(数据由平台提供,你需要获取后使用),计算需要把这张纸折叠多少次,其厚度才能搭建一座登月纸桥。考虑到将来需要到更远的星球,函数需要根据具体距离计算纸张折叠的次数并返回。
已知:月球离地球最近距离(近地点)为363300千米,最远距离(远地点)为405500千米,一张纸的厚度一般为0.088到0.114毫米。
测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:363300 0.088
预期输出:需要折叠42次
测试输入:405500 0.088
预期输出:需要折叠43次
#include <iostream>
using namespace std;
// foldTimes-计算建纸桥的折叠次数
// 参数:dis-星际距离(千米),thick-纸的厚度(毫米)
// 返回值:建桥需要折叠的次数
int foldTimes(double dis, double thick);
int main() {
double dis, thick;
cin >> dis >> thick;
cout << "需要折叠" << foldTimes(dis, thick) << "次" << endl;
return 0;
}
/**
* 计算折叠的次数
* @param dis
* @param thick
* @return
*/
int foldTimes(double dis, double thick) {
// 请在这里补充代码,实现函数foldTimes
/********** Begin *********/
int cnt = 0;
while (thick < dis * 1000000) {
thick *= 2;
cnt++;
}
return cnt;
/********** End **********/
}
363300 0.088
需要折叠42次