爱好编程的进(不限制语言)

来源:百度知道 编辑:UC知道 时间:2024/06/17 07:46:34
不限制语言(但最好是c,c++,java)
今有20个台阶,一个人要走完它,可以一次走1个,或2,或3个
总共有多少中走法?

121415种

#include <stdio.h>

int main( )
{
int f[ 21 ], i;
f[ 0 ] = 1; f[ 1 ] = 1; f[ 2 ] = 2;
for ( i = 3; i <= 20; i++ )
f[ i ] = f[ i - 1 ] + f[ i - 2 ] + f[ i - 3 ];
printf("%d", f[ 20 ]);
return 0;
}

121415是正解

44种
public class Test{
public static void main(String []args){
int count=0;
for(int i=0 ;i<21;i++){
for(int j=0;j<11;j++){
for(int k=0;k<7;k++){
if((1*i)+(2*j)+(3*k)==20){
count++;
}
}
}
}

System.out.println(count);

}
}

void main()
{ int i,n,m,cum;//i代表走一步时n走两步时m 走三步时cum走法
i=20;n=10;m=6;
for(i=0;1<=20;i++ )
{ for(n=0;n<=10;n++)
{ for(m=0;m<=6;m++)
if((i+2*n+3*m)==20)
cum+=1;
}
}
printf("cum=%d&