码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 百炼成钢10

时间:2016-01-22 21:13:12      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:

//题目28:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
//3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
//问第一个人,他说是10岁。请问第五个人多大?

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

//分析:经过阅读,发现f(5)=f(4)+2;f(4)=f(3)+2;f(3)=f(2)+2;f(2)=f(1)+2;所以可以使用递归,也可以直接求出
//f(5)=f(4)+2=f(3)+2+2=f(3)+2*2=f(2)+2+2+2=f(2)+2*3=f(2)+2*(5-2)=f(1)+2*(5-1)=18;
//由于太过简单,此处不使用递归

void main(){
    printf("第五个人%d岁", 10 + 2 * (5 - 1));
    system("pause");
}

技术分享

 

//题目29:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>


//分析:求它是几位数,先除以10得到一个数,num-这个数,逆序将数字存到数组里递归就OK了
char str3[8] = { 0 };

void run3(int n){
    if (n==0)
    {
        printf("%c", str3[n]);
    }
    else{
        printf("%c", str3[n]);
        run3(n-1);
    }
}

void main(){
    scanf("%s", str3);
    int index = 0;
    while (str3[index] != \0){
        index++;
    }
    printf("这个数字是%d位数\n",index);
    printf("逆序排列\n");
    run3(index);

    system("pause");
}

 

技术分享

 

C语言 百炼成钢10

标签:

原文地址:http://www.cnblogs.com/zhanggaofeng/p/5151805.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!