C语言循环与递归
来源:互联网 发布:java代码解析json数据 编辑:程序博客网 时间:2024/06/16 14:44
#include <stdio.h>
void func();
int loop(int);
int monkey(int);
int main(){
printf("%d",monkey(10));
printf("%d",loop(6));
func();
return 0;
}
/*
题目:有6个人坐在一起,
问第6个人有多少岁,他说比第5个人大3岁;问第5个人有多少岁,他说比第4个人大3岁;
问第4个人有多少岁,他说比第3个人大3岁;问第3个人有多少岁,他说比第2个人大3岁;
问第2个人有多少岁,他说比第2个人大3岁;问最后1个人,他说是15岁.那么,第6个人多少岁?
*/
int loop(int n){
if(n>1){
return loop(n-1)+3;
}
return 15;
}
/*
题目:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。
第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。
到第10天在想吃的时候就剩一个桃子了,
问第一天共摘下来多少个桃子?并反向打印每天所剩桃子数。
*/
int monkey(int n){
if(n>1){
int m=(monkey(n-1)+1)*2;
printf("m=%d,n=%d\n",m,n);
return m;
}
return 1;
}
/*
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
*/
void func(){
int arr[]={1,2,3,4};
int i=0;
int j=0;
int k=0;
int num=4;
int ex=3;
int count=0;
for(i=0;i<num;i++){
for(j=0;j<num;j++){
for(k=0;k<num;k++){
if(arr[i]!=arr[j]&&arr[i]!=arr[k]&&arr[j]!=arr[k]){
printf("%d,%d,%d\n",arr[i],arr[j],arr[k]);
count++;
}
}
}
}
printf("count:%d",count);
}
/***********************************************************
1.递归函数每次调用都会重新创建变量,这些变量都存储在堆栈中,不断的增大内存空间的使用量
void func();
int loop(int);
int monkey(int);
int main(){
printf("%d",monkey(10));
printf("%d",loop(6));
func();
return 0;
}
/*
题目:有6个人坐在一起,
问第6个人有多少岁,他说比第5个人大3岁;问第5个人有多少岁,他说比第4个人大3岁;
问第4个人有多少岁,他说比第3个人大3岁;问第3个人有多少岁,他说比第2个人大3岁;
问第2个人有多少岁,他说比第2个人大3岁;问最后1个人,他说是15岁.那么,第6个人多少岁?
*/
int loop(int n){
if(n>1){
return loop(n-1)+3;
}
return 15;
}
/*
题目:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。
第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。
到第10天在想吃的时候就剩一个桃子了,
问第一天共摘下来多少个桃子?并反向打印每天所剩桃子数。
*/
int monkey(int n){
if(n>1){
int m=(monkey(n-1)+1)*2;
printf("m=%d,n=%d\n",m,n);
return m;
}
return 1;
}
/*
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
*/
void func(){
int arr[]={1,2,3,4};
int i=0;
int j=0;
int k=0;
int num=4;
int ex=3;
int count=0;
for(i=0;i<num;i++){
for(j=0;j<num;j++){
for(k=0;k<num;k++){
if(arr[i]!=arr[j]&&arr[i]!=arr[k]&&arr[j]!=arr[k]){
printf("%d,%d,%d\n",arr[i],arr[j],arr[k]);
count++;
}
}
}
}
printf("count:%d",count);
}
/***********************************************************
1.递归函数每次调用都会重新创建变量,这些变量都存储在堆栈中,不断的增大内存空间的使用量
***********************************************************/
github:https://github.com/comeonjy/c
阅读全文
0 0
- C语言循环与递归
- C语言中的循环与递归
- 二分查找法的C语言实现:递归与循环
- (C语言)循环与递归求斐波那契数
- C fibonaccio 递归与循环
- 八皇后问题 C语言,递归,非递归,循环!
- 递归与尾递归(C语言)
- 递归与尾递归(C语言)
- 递归与尾递归(C语言)
- 递归与尾递归(C语言)
- 递归与尾递归 (C语言)
- 递归与尾递归(C语言)
- c语言--函数与递归
- C语言之三种循环结构与递归函数的对比
- C 重写power函数 递归与循环
- 微软c语言循环递归笔试题分析
- C语言:字符串逆置(循环法,递归写法)
- 浅谈c语言中迭代与递归的
- EASYUI 登陆框界面
- 初识Mybatis(一)
- 容器类iterator 循环删除结点的问题
- spring4天计划(2day)
- CNN直观感受
- C语言循环与递归
- 【补充】adr和ldr的区别
- zabbix自定义监控发邮件
- 高级编程之topn
- vim配置文件
- * 24种设计模式——工厂模式
- sql注入解决
- Node.js+Express+MySql实现用户登录注册
- 自定义View触摸相关工具类全解