Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14979
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-22 15:44
个人简介

Be better

文章分类

全部博文(17)

文章存档

2016年(12)

2015年(5)

我的朋友

分类: C/C++

2016-03-05 13:28:41

#include
#include
#include




double num1(int num)//递归实现
{
if (num == 1)
{
return 1.0;
}
else if (num == 2)
{
return 2.0;
}
else
{
return num1(num - 1) + num1(num - 2);
}
}


double loop1(int num)//for循环实现
{
double num1 = 1;
double num2 = 2;
double res = 0;
for (int i = 0; i < num-2; i++)
{
res = num1 + num2;


num1 = num2;
num2 = res;
}
return res;
}


double loop2(int num)//while 循环实现
{
double num1 = 1;
double num2 = 2;
double res = 0;


while (num > 2)
{
res = num1 + num2;


num1 = num2;
num2 = res;


num--;
}
return res;
}




double loop3(int num)//do while 循环实现
{
double num1 = 1;
double num2 = 2;
double res = 0;
do
{
res = num1 + num2;


num1 = num2;
num2 = res;


num--;
} while (num > 2);

return res;
}


double loop4(int num)//goto 循环实现
{
double num1 = 1;
double num2 = 2;
double res = 0;
AA: if (num > 2)
{
res = num1 + num2;
num1 = num2;
num2 = res;
num--;
goto AA;
}
return res;
}


double loop5(int num)//数组实现
{
double a[50];
a[0] = 1;
a[1] = 2;


for (int i = 2; i < num; i++)
{
a[i] = a[i - 1] + a[i - 2];
}
return a[num-1];
}




void main()
{
for (int i = 3; i <= 10; i++)
{
printf("%d阶台阶有%.0f种走法\n", i, num1(i));
printf("%d阶台阶有%.0f种走法\n", i, loop1(i));
printf("%d阶台阶有%.0f种走法\n", i, loop2(i));
printf("%d阶台阶有%.0f种走法\n", i, loop3(i));
printf("%d阶台阶有%.0f种走法\n", i, loop4(i));
printf("%d阶台阶有%.0f种走法\n", i, loop5(i));
}


system("pause");
}
阅读(249) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~