王小二切饼
2009-07-29 13:58
691 查看
【题目如下】
王小二自夸刀工不错,有人放一张大的煎饼在砧板上,问他:“饼不离板,最多切多少块?”
【问题分析】
令q(n)为切n刀最多能分成的块数,便有一下式子:
q(1)=1+1=2
q(2)=1+1+2=4
q(3)=1+1+2+3=7
q(4)=1+1+2+3+4=11
在切法上是让每两条线都有交点,用归纳法可知
q(n)=q(n-1)+n
q(0)=1 (边界)
【代码详情】
【运行结果】
王小二自夸刀工不错,有人放一张大的煎饼在砧板上,问他:“饼不离板,最多切多少块?”
【问题分析】
令q(n)为切n刀最多能分成的块数,便有一下式子:
q(1)=1+1=2
q(2)=1+1+2=4
q(3)=1+1+2+3=7
q(4)=1+1+2+3+4=11
在切法上是让每两条线都有交点,用归纳法可知
q(n)=q(n-1)+n
q(0)=1 (边界)
【代码详情】
/******************************************************** /* 程 序 名:王小二切饼 /* 作 者:为了娶个美女老婆而AC /* 编程时间:2009年7月29日 /* 主要功能:递推算法的实现 *********************************************************/ #include<iostream> using namespace std;//编译命令 const int MAX=100;//定义常量 int main()//主函数开始 { int i,n,cake[MAX+1];//定义变量 cake[0]=1; for(i=1; i<MAX+1; i++)//打表求出前100刀切成的块数 { cake[i]=cake[i-1]+i; } cout<<"切100刀后最多切成"<<cake[MAX]<<"块"<<endl;//输出提示信息 return 0;//主函数结束 }
【运行结果】