您的位置:首页 > 其它

振兴中华

2013-10-10 09:44 337 查看
/*
标题: 振兴中华

小明参加了学校的趣味运动会,其中的一个项目是:跳格子。

从我做起振
我做起振兴
做起振兴中
起振兴中华

比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。

要求跳过的路线刚好构成“从我做起振兴中华”这句话。

请你帮助小明算一算他一共有多少种可能的跳跃路线呢?
*/
#include <stdio.h>
#include <time.h>

int main( )
{
char c_i = 0;
char c_j = 0;
char c_arr[4][5] = {0};
/*************************************************************/
clock_t start, finish;
start = clock();
/*************************************************************/

/* 采用倒序列举法
华字由中字而来
中字由兴字而来。。。一次类推
从我做起振
我做起振兴
做起振兴中
起振兴中华
除最顶上的一行和最左边的一列之外,每个字都有两个上家
*/

//最左边的一列
for(c_i=0; c_i<4; c_i++)
c_arr[c_i][0] = 1;
//最顶上的一行
for(c_j=0; c_j<5; c_j++)
c_arr[0][c_j] = 1;

for(c_i=1; c_i<4; c_i++)
for(c_j=1; c_j<5; c_j++)
c_arr[c_i][c_j] = c_arr[c_i-1][c_j] + c_arr[c_i][c_j-1] ;
printf("总共有%d种路线\n", c_arr[3][4]);

/*************************************************************/
finish = clock();
printf( "\n\n\n程序运行时间:%.3f ms\n", (double)(finish - start));
/*************************************************************/
return 0;
}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c 算法