
C++程序求解
展开全部
这是一个算法问题,do while,while,for仅仅是你使用的循环结构。
要求精度,嗯,其实double类型完全可以解决啊。
原式可以变换为1/0!+x/1!-x2/2!.....也就是说其实数据给1而后进行循环,循环内容是判断奇偶项,奇减,偶加,每一项都是xn/x!,判断条件是n也就是你的输入值。
结构基本就是
double calNum( int n )
{
int temp;
double result;
result = 0;
for( temp = 1; temp < n; ++temp )
{
if( n/2 == 0 ) // 偶数
{ ... } // 对应的相加部分,只是和奇数的情况符号不一样
else // 剩下的就是奇数的情况了
{ ... }
}
return result;
}
其实这样写比较麻烦
建议使用两个函数,这样代码可以少一些,但是,calNum这个函数的基本结构不变。
double calNum( int n, double beginNum )
{
int temp;
for( temp = 1; temp < n; ++temp )
{
if( n/2 == 0 ) // 偶数
beginNum += calUnit( temp ); // 另外定义的计算每一项绝对值的函数
else // 剩下的就是奇数的情况了
beginNum -= calUnit( temp );
}
return beginNum;
}
double calUnit( int numOrder )
{
...
return temp; // 这里的temp是一个double型数据
}
使用do while,while,for仅仅是结构和判别式不同,当然,效率上也有微小的差异(当然,这个我没有仔细研究过)
程序永远都需要自己亲手去写才有意义。
要求精度,嗯,其实double类型完全可以解决啊。
原式可以变换为1/0!+x/1!-x2/2!.....也就是说其实数据给1而后进行循环,循环内容是判断奇偶项,奇减,偶加,每一项都是xn/x!,判断条件是n也就是你的输入值。
结构基本就是
double calNum( int n )
{
int temp;
double result;
result = 0;
for( temp = 1; temp < n; ++temp )
{
if( n/2 == 0 ) // 偶数
{ ... } // 对应的相加部分,只是和奇数的情况符号不一样
else // 剩下的就是奇数的情况了
{ ... }
}
return result;
}
其实这样写比较麻烦
建议使用两个函数,这样代码可以少一些,但是,calNum这个函数的基本结构不变。
double calNum( int n, double beginNum )
{
int temp;
for( temp = 1; temp < n; ++temp )
{
if( n/2 == 0 ) // 偶数
beginNum += calUnit( temp ); // 另外定义的计算每一项绝对值的函数
else // 剩下的就是奇数的情况了
beginNum -= calUnit( temp );
}
return beginNum;
}
double calUnit( int numOrder )
{
...
return temp; // 这里的temp是一个double型数据
}
使用do while,while,for仅仅是结构和判别式不同,当然,效率上也有微小的差异(当然,这个我没有仔细研究过)
程序永远都需要自己亲手去写才有意义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double calNum( int n, double beginNum )
{
int temp;
for( temp = 1; temp < n; ++temp )
{
if( n/2 == 0 ) // 偶数
beginNum += calUnit( temp ); // 另外定义的计算每一项绝对值的函数
else // 剩下的就是奇数的情况了
beginNum -= calUnit( temp );
}
return beginNum;
}
double calUnit( int numOrder )
{
...
return temp; // 这里的temp是一个double型数据
}
{
int temp;
for( temp = 1; temp < n; ++temp )
{
if( n/2 == 0 ) // 偶数
beginNum += calUnit( temp ); // 另外定义的计算每一项绝对值的函数
else // 剩下的就是奇数的情况了
beginNum -= calUnit( temp );
}
return beginNum;
}
double calUnit( int numOrder )
{
...
return temp; // 这里的temp是一个double型数据
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询