C++用递归计算一根长为1万毫米的棍子对折10次后的长度?高手帮忙啊

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:01:08
如题

#include<iostream>
using namespace std;
int n=10;
int f(int len)
{
if(n==0)return len;
else {
n--;
return f(len)/2;}
}
void main()
{
int length;
cin>>length;
cout<<f(length)<<endl;
}

float compute(float len){
static int cnt = 10;
return (cnt--<=1)?len:compute(len/2);
}

/*不赞成第二种。假如我先求折叠10次的结果,然后接着再求折叠20次的结 就无能为力了。
第一种使用全局变量,可读性不好,而且容易让人半途无意改变全局变量的值*/
#include <iostream>
using namespace std;

double computer(double len, size_t times)
{
if ( times <= 0 )
return len;
else
return computer( len/2,--times);
}

int main()
{
double result;
result = computer(100000,10) ;
cout << result << endl;
return EXIT_SUCCESS;
}