切面条
问题描述
一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢?
一、问题分析
a.方法一 图解
2.代码
方法一:精简
#include <stdio.h>
#include <math.h>
int main()
{
//初始化切割后面条总数
double x = 0;
//初始化切割面条次数
int times = 0;
//用户输入切割面条次数
printf("Please enter the number of twists:");
scanf("%d",×);
//调用平方根函数
x = pow(2,times) + 1;
//强制类型转换成整型输出
printf("number of noodles:%d\n",(int)x);
return 0;
}
方法二:函数调用+循环思想
#include <stdio.h>
int cut_noodles(int times)
{
//循环实现
int x = 2;
int ret = 1;
for ( int i = 0;i < times;i++)
{
x += ret;
ret = ret * 2;
}
return x;
}
int main()
{
//初始化切割后面条总数
int x = 0;
//初始化切割面条次数
int times = 0;
printf("Please enter the number of twists:");
scanf("%d",×);
x = cut_noodles(times);
printf("number of noodles:%d\n",x);
return 0;
}
二、总结
- pow(a,b),计算a的b次方;需头文件math.h
- 观察题目描述找出规律,大多时候规律归纳即编程思路
- 学会深度广度拓展
- 空杯心态