C语言阶梯问题,求教各位大佬啊,刚学C语言,希望大佬能用循环语句死算出来的方法题目如图。 10
2个回答
展开全部
这个不是C语言的内容,是概率统计,C语言只是实现计算的语言工具。
要解决这个问题,需要用到概率统计,建立概率统计的算法结构:
首先要选走两步的台阶,剩下的就是一步,两台阶44 /2 = 22,最多22步,分别是0个两步,一个两级,二个,三个...22个两级,所以是C(22, 0) + C(22,1)+...+C(22,22)的算法, 结果是2的22次幂。对于偶数n = N/2,结果等于2(n次幂)
如果N是奇数,那么要先计算n=(N-1)/2的步数,再乘以N,结果等于 N * 2(n次幂)
C代表组合的概率数,用循环做
C(6,2) = 6 * 5/(2*1)=15, C(6,3) =6*5*4/(3*2*1)=20,依次类推。必要写一个这样的函数:int Combin(int Arg1, int Arg2){}
int main(){
int Result = 0, i, n, m;
scanf("%d", m); //输入m
n = m /2; //取阶数
m = (m %2 == 0 ) ? 1 : m; //如果偶数,那么单一倍数,否则不变
for (i:=0; i <= n; ++i){ Result = Result + Combin(n, i); }
return Result * m;
}
要解决这个问题,需要用到概率统计,建立概率统计的算法结构:
首先要选走两步的台阶,剩下的就是一步,两台阶44 /2 = 22,最多22步,分别是0个两步,一个两级,二个,三个...22个两级,所以是C(22, 0) + C(22,1)+...+C(22,22)的算法, 结果是2的22次幂。对于偶数n = N/2,结果等于2(n次幂)
如果N是奇数,那么要先计算n=(N-1)/2的步数,再乘以N,结果等于 N * 2(n次幂)
C代表组合的概率数,用循环做
C(6,2) = 6 * 5/(2*1)=15, C(6,3) =6*5*4/(3*2*1)=20,依次类推。必要写一个这样的函数:int Combin(int Arg1, int Arg2){}
int main(){
int Result = 0, i, n, m;
scanf("%d", m); //输入m
n = m /2; //取阶数
m = (m %2 == 0 ) ? 1 : m; //如果偶数,那么单一倍数,否则不变
for (i:=0; i <= n; ++i){ Result = Result + Combin(n, i); }
return Result * m;
}
2017-08-12
展开全部
图片看到的信息不完整
~
~
~
~
~
~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询