新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

 

《计算机常用算法与程序设计案例教程?/p>

 

习题解答提要

 

习题

1 

1-1  

分数分解算法描述

 

把真分数

a/b

分解为若干个分母为整数分子为?/p>

1

”的埃及分数之和?/p>

 

   

?/p>

1

?/p>

 

寻找并输出小?/p>

a/b

的最大埃及分?/p>

1/c

?/p>

 

   

?/p>

2

?/p>

 

?/p>

c>900000000

,则退出;

 

   

?/p>

3

?/p>

 

?/p>

c

?/p>

900000000

,把?/p>

a/b-1/c

整理为分?/p>

a/b

,若

a/b

为埃及分数,则输

出后结束?/p>

 

   

?/p>

4

?/p>

 

?/p>

a/b

不为埃及分数,则继续?/p>

1

?/p>

?/p>

?/p>

2

?/p>

?/p>

?/p>

3

?/p>

?/p>

 

试描述以上算法?/p>

 

解:?/p>

)

(

int

a

b

d

?/p>

 (

这里

int(x)

表示取正?/p>

x

的整?/p>

)

,注意到

1

?/p>

?/p>

?/p>

d

a

b

d

,有

 

    

)

1

(

)

1

(

1

1

?/p>

?/p>

?/p>

?/p>

?/p>

?/p>

d

b

b

d

a

d

b

a

 

算法描述:令

c=d+1

,则

 

  input (a,b) 

  while(1) 

    {c=int(b/a)+1; 

     if(c>900000000) return; 

     else 

        { print(1/c+); 

          a=a*c-b; 

          b=b*c;        // a,b

迭代,为选择下一个分母作准备

 

          if(a==1) 

             { print(1/b);return;} 

        }      

  }

        

 

1-2  

求出以下程序段所代表算法的时间复杂度

 

?/p>

1

?/p>

m=0; 

    for(k=1;k<=n;k++) 

Ͼλ
新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

 

《计算机常用算法与程序设计案例教程?/p>

 

习题解答提要

 

习题

1 

1-1  

分数分解算法描述

 

把真分数

a/b

分解为若干个分母为整数分子为?/p>

1

”的埃及分数之和?/p>

 

   

?/p>

1

?/p>

 

寻找并输出小?/p>

a/b

的最大埃及分?/p>

1/c

?/p>

 

   

?/p>

2

?/p>

 

?/p>

c>900000000

,则退出;

 

   

?/p>

3

?/p>

 

?/p>

c

?/p>

900000000

,把?/p>

a/b-1/c

整理为分?/p>

a/b

,若

a/b

为埃及分数,则输

出后结束?/p>

 

   

?/p>

4

?/p>

 

?/p>

a/b

不为埃及分数,则继续?/p>

1

?/p>

?/p>

?/p>

2

?/p>

?/p>

?/p>

3

?/p>

?/p>

 

试描述以上算法?/p>

 

解:?/p>

)

(

int

a

b

d

?/p>

 (

这里

int(x)

表示取正?/p>

x

的整?/p>

)

,注意到

1

?/p>

?/p>

?/p>

d

a

b

d

,有

 

    

)

1

(

)

1

(

1

1

?/p>

?/p>

?/p>

?/p>

?/p>

?/p>

d

b

b

d

a

d

b

a

 

算法描述:令

c=d+1

,则

 

  input (a,b) 

  while(1) 

    {c=int(b/a)+1; 

     if(c>900000000) return; 

     else 

        { print(1/c+); 

          a=a*c-b; 

          b=b*c;        // a,b

迭代,为选择下一个分母作准备

 

          if(a==1) 

             { print(1/b);return;} 

        }      

  }

        

 

1-2  

求出以下程序段所代表算法的时间复杂度

 

?/p>

1

?/p>

m=0; 

    for(k=1;k<=n;k++) 

">
新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

 

《计算机常用算法与程序设计案例教程?/p>

 

习题解答提要

 

习题

1 

1-1  

分数分解算法描述

 

把真分数

a/b

分解为若干个分母为整数分子为?/p>

1

”的埃及分数之和?/p>

 

   

?/p>

1

?/p>

 

寻找并输出小?/p>

a/b

的最大埃及分?/p>

1/c

?/p>

 

   

?/p>

2

?/p>

 

?/p>

c>900000000

,则退出;

 

   

?/p>

3

?/p>

 

?/p>

c

?/p>

900000000

,把?/p>

a/b-1/c

整理为分?/p>

a/b

,若

a/b

为埃及分数,则输

出后结束?/p>

 

   

?/p>

4

?/p>

 

?/p>

a/b

不为埃及分数,则继续?/p>

1

?/p>

?/p>

?/p>

2

?/p>

?/p>

?/p>

3

?/p>

?/p>

 

试描述以上算法?/p>

 

解:?/p>

)

(

int

a

b

d

?/p>

 (

这里

int(x)

表示取正?/p>

x

的整?/p>

)

,注意到

1

?/p>

?/p>

?/p>

d

a

b

d

,有

 

    

)

1

(

)

1

(

1

1

?/p>

?/p>

?/p>

?/p>

?/p>

?/p>

d

b

b

d

a

d

b

a

 

算法描述:令

c=d+1

,则

 

  input (a,b) 

  while(1) 

    {c=int(b/a)+1; 

     if(c>900000000) return; 

     else 

        { print(1/c+); 

          a=a*c-b; 

          b=b*c;        // a,b

迭代,为选择下一个分母作准备

 

          if(a==1) 

             { print(1/b);return;} 

        }      

  }

        

 

1-2  

求出以下程序段所代表算法的时间复杂度

 

?/p>

1

?/p>

m=0; 

    for(k=1;k<=n;k++) 

Ͼλ">
Ͼλ
Ŀ

《计算机常用算法与程序设计案例教程》习题解?- 百度文库
新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

 

《计算机常用算法与程序设计案例教程?/p>

 

习题解答提要

 

习题

1 

1-1  

分数分解算法描述

 

把真分数

a/b

分解为若干个分母为整数分子为?/p>

1

”的埃及分数之和?/p>

 

   

?/p>

1

?/p>

 

寻找并输出小?/p>

a/b

的最大埃及分?/p>

1/c

?/p>

 

   

?/p>

2

?/p>

 

?/p>

c>900000000

,则退出;

 

   

?/p>

3

?/p>

 

?/p>

c

?/p>

900000000

,把?/p>

a/b-1/c

整理为分?/p>

a/b

,若

a/b

为埃及分数,则输

出后结束?/p>

 

   

?/p>

4

?/p>

 

?/p>

a/b

不为埃及分数,则继续?/p>

1

?/p>

?/p>

?/p>

2

?/p>

?/p>

?/p>

3

?/p>

?/p>

 

试描述以上算法?/p>

 

解:?/p>

)

(

int

a

b

d

?/p>

 (

这里

int(x)

表示取正?/p>

x

的整?/p>

)

,注意到

1

?/p>

?/p>

?/p>

d

a

b

d

,有

 

    

)

1

(

)

1

(

1

1

?/p>

?/p>

?/p>

?/p>

?/p>

?/p>

d

b

b

d

a

d

b

a

 

算法描述:令

c=d+1

,则

 

  input (a,b) 

  while(1) 

    {c=int(b/a)+1; 

     if(c>900000000) return; 

     else 

        { print(1/c+); 

          a=a*c-b; 

          b=b*c;        // a,b

迭代,为选择下一个分母作准备

 

          if(a==1) 

             { print(1/b);return;} 

        }      

  }

        

 

1-2  

求出以下程序段所代表算法的时间复杂度

 

?/p>

1

?/p>

m=0; 

    for(k=1;k<=n;k++) 



ļ׺.doc޸Ϊ.docĶ

  • ʡѧ2017-2018ѧһѧѧ
  • 2015-2020йλгͶʲо - ͼ
  • ݴѧֽṹ15ҵ2ִ
  • 2016-2022йƶλ÷(LBS)ҵгչսѯ -
  • IxChariotʹ÷ - ͼ
  • ʵ7
  • ѧ¥ҵ
  • ˽̰°а꼶ϲддִ
  • ΢ѧ(15)׼
  • 110kVѹվһϵͳƱҵ()

վ

԰ Ͼλ
ϵͷ779662525#qq.com(#滻Ϊ@)