赞
踩
例如:5!=5*4!=5*4*3!=5*4*3*2!=5*4*3*2*1;
- //求一个正整数的阶乘
- #include<stdio.h>
- int fun(int x){
- if(x == 1){
- return 1;
- }else{
- return x*fun(x-1);
- }
- }
- int main(){
- int x;
- printf("请输入一个数:");
- scanf_s("%d",&x);
- printf("%d的阶乘是%d",x,fun(x));
- return 0;
- }
斐波那契数列:1,1,2,3,5,8,13,21,34,55........
第一个和第二个数都为1,从第三个数开始其值为前两数之和;
- #include<stdio.h>
- int feibonaqie(int x){
- if(x == 1 || x == 2){
- return 1;
- }else{
- return feibonaqie(x-1)+feibonaqie(x-2);
- }
- }
- int main(){
- printf("请输入第x个数的值:");
- int x;
- scanf_s("%d",&x);
- printf("斐波那契数列中第%d个数的值是%d",x,feibonaqie(x));
- return 0;
- }
三根杆子(A,B,C),在A杆由下而上、由大到小顺序放置x个圆盘。游戏的目标:把A杆上的圆盘全部移到C杆上,并保持原来的顺序叠好,要求一次只能挪动一个盘子,并且不能出现大盘在上,小盘在下的情况;(借助B杆实现A杆全部移到C杆且顺序不变)。
如果想不明白,可以想想把大象放冰箱分几步
- #include<stdio.h>
- void move(char x,char y){
- printf("%c---->%c\n",x,y);
- }
- void hanoi(int m,char one,char two,char three){
- if(m == 1){
- move(one,three);
- }else{
- hanoi(m-1,one,three,two);
- move(one,three);
- hanoi(m-1,two,one,three);
- }
- }
- int main(){
- int x;
- scanf_s("%d",&x);
- hanoi(x,'A','B','C');
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。