| 
 
TA的每日心情|  | 开心 2014-6-18 08:29
 | 
|---|
 签到天数: 14 天 [LV.3]偶尔看看II 滴水大师  
 
 
	积分2345 
 | 
 
| 题目 
  
 解决代码及点评
 
 
 
 
 <pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre class="cpp" name="code" code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179"><pre class="cpp" name="code" code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre code_snippet_id="91880" snippet_file_name="blog_20131209_3_2713861" class="cpp" name="code">/* 功能:用简单迭代法解方程   e^x - x - 2 = 0       它有两个根(如图),其迭代公式为:       1) x[n+1]= e^x*n-2                               (初值X<0时)         2) x[n+1]= Ln(x[n] + 2)         (初值X>0时)   注:本程序中选取初值X0 不同时,要分别使用公式1或公式2迭代,得原方程<0或>0的解。(公式由来略)     时间:13:08 2013/10/26 */    #include<stdio.h>  #include <stdlib.h>  #include<math.h>    #define E 2.74    double getRoot1(double x,int n)  {      return pow(E,x)*n-2;            //x<0时直接返回结果  }    double getRoot2(double n)  {      if(n<=0)      {          return 2;                   //结束条件      }      else      {          return log10f(getRoot2(n-1)+2);     //迭代法则      }  }    void main()  {      int n;      scanf_s("%d",&n);      double x;      scanf_s("%lf",&x);      double root1;      if (x<0)             //判断x是否小于0      {           root1=getRoot1(x,n);          printf("root 1 = %f\n",root1);      }       else      {          double root2=getRoot2(n);          printf("root 2 =%f \n",root2);      }      system("pause");  }</pre><br><br></pre></pre></pre>  
 
 
 | 
 |