概述
//
// main.m
// LesssonRecursion
//
// Created by lanouhn on 14-7-31.
// Copyright (c) 2014年 Summer. All rights reserved.
//
#import <Foundation/Foundation.h>
void eatAppleSummer(int number)
{
//对于递归来说,必须要有出口,也就是递归的结束标志.必有需要有结束,否则会形成死循环
if (number == 0) {
return;//return 后面没有内容,代表返回值类型为空void.
}
number--; //苹果个数减一 number = 3 //留一个苹果
printf("Summer eat P%d applen", 6 - number);//吃了一个苹果 //吃苹果
eatAppleSummer(number); //找自己吃苹果 //找人
}
//将一个整数正序输出 以及 逆序输出
//例子: 54321 正序(Positive Sequence): 54321 逆序(Reverse order): 12345
void printfPositiveSequence(int n)
{
if (n == 0) {
return; //如果没有可挑选的数字,直接返回,递归结束
}
//1.留一个数
int number = n % 10;//保存留下的数
//2.找下一个人
printfPositiveSequence(n / 10);
//3.输出留下的数
printf("%d", number);
}
void printfReverseOrder(int n)
{
if (n == 0) {
return; //如果没有可挑选的数字,直接返回,递归结束
}
//1.留一个数
int number = n % 10;//保留存下的数
//2.输出留下的数
printf("%d", number);
//3.找下一个人
printfReverseOrder(n / 10);
}
//求阶乘(Factorial), 5!
int printfFactorial(int n)
{
//出口
if (n == 1) {
return 1;//如果求1的阶乘直接返回1
}
//1.留一个数
int number = n;
//2.求得n - 1的阶乘
int value = printfFactorial(n - 1);
//3.求n的阶乘
return number * value;
}
int main(int argc, const char * argv[])
{
// eatAppleSummer(6);
// printfPositiveSequence(54321);
// printf("n");
// printfReverseOrder(54321);
// printf("n");
// printf("%d", printfFactorial(30));
//const 关键字
//const 修饰变量,把变量当做常量来看待,只能读,不可写
int a = 10;
int b = 2;
//const 修饰谁,谁不可变
//const 修饰*p不能通过指针变量p修改指向空间的内容,但是p可以重指向
const int *p = &a;
//测试
// *p = 20;
// p = &b;
//const 修饰*p1不能通过指针变量*p1修改指向空间的内容,但是p1可以重指向
int const *p1 = &a;
//测试
// *p1 = 20;
// p1 = &b;
//const 修饰p2, p2不可以重指向,但是可以通过*p2修改指向空间的内容
int * const p2 = &a;
//测试
// *p2 = 20;
// p2 = &b;
//const 修饰p3以及*p3, p3 不可以重指向,也不可以通过*p3修改修改指向空间的内容
const int * const p3 = &a;
//测试
// *p3 = 20;
// p3 = &b;
//const 让程序安全
// strlen(<#const char *#>)
return 0;
}
最后
以上就是纯情西装为你收集整理的递归函数 const关键字的全部内容,希望文章能够帮你解决递归函数 const关键字所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复