SHA256


私信TA

用户名:uq_41463493448

访问量:4896

签 名:

星光不问赶路人,岁月不负有心人

等  级
排  名 597
经  验 4236
参赛次数 1
文章发表 18
年  龄 22
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

1.自定义阶乘函数,并使用递归,可能会导致运行时间长于其他解法
2.为达到全部C++语言实现,引用了与精度有关的头文件

3.将结果拆分成十进制数,阶码标志e以及阶码三部分输出


注意事项:

1.数据类型定义时,都定义为double类型最佳

2.要知道循环条件及次数

3.结果使用科学计数法,保留两位小数

4.此题输出结果应为这样的格式  “保留两位的十进制数e+阶码”


参考代码:

#include <iostream>
#include <iomanip>       //C++中与精度有关的头文件
using namespace std;


double fact(double n)  //自定义阶乘函数
{
     if(1.0==n)
    {
    return 1.0;
    }else
    {
    return n*fact(n-1);   //递归调用阶乘函数
    }
}


int main()
{
   int n=0;   //n用于存储阶码
   double sum=1;  //sum用于存储阶乘和
   for(double i=2;i<=30;i++)
   {
    sum=sum+fact(i);
   }
   while(sum>10)   //计算阶码的循环
   {
   sum=sum/10;
    n++;    //阶码和每次整除10,阶码加1
   }
  cout<<fixed<<setprecision(2)<<sum<<"e+"<<n<<endl;   //按照题目输出要求,输出结果
 return 0;
}


 

0.0分

1 人评分

  评论区

  • «
  • »