zoukankan      html  css  js  c++  java
  • C语言 百炼成钢10

    //题目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] != ''){
            index++;
        }
        printf("这个数字是%d位数
    ",index);
        printf("逆序排列
    ");
        run3(index);
    
        system("pause");
    }

    //题目30:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 
    
    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    
    //分析:很简单,分离出个十百千万位就OK了
    //设计出万能获取数字各个位的方法
    
    //获取正整数各个位的值
    int * Numcount(int num){
        //定义静态数组,以便调用
        static int arr[12] = { 0 };
        if (num >= (int)pow(10.0, 9.0))
        {
            arr[9] = num / (int)pow(10.0, 9.0);
            num = num - arr[9] * (int)pow(10.0, 9.0);
            arr[8] = num / (int)pow(10.0, 8.0);
            num = num - arr[8] * (int)pow(10.0, 8.0);
            arr[7] = num / (int)pow(10.0, 7.0);
            num = num - arr[7] * (int)pow(10.0, 7.0);
            arr[6] = num / (int)pow(10.0, 6.0);
            num = num - arr[6] * (int)pow(10.0, 6.0);
            arr[5] = num / (int)pow(10.0, 5.0);
            num = num - arr[5] * (int)pow(10.0, 5.0);
            arr[4] = num / (int)pow(10.0, 4.0);
            num = num - arr[4] * (int)pow(10.0, 4.0);
            arr[3] = num / (int)pow(10.0, 3.0);
            num = num - arr[3] * (int)pow(10.0, 3.0);
            arr[2] = num / (int)pow(10.0, 2.0);
            num = num - arr[2] * (int)pow(10.0, 2.0);
            arr[1] = num / (int)pow(10.0, 1.0);
            num = num - arr[1] * (int)pow(10.0, 1.0);
            arr[0] = num;
        }
        else if (num >= (int)pow(10.0, 8.0)){
            arr[8] = num / (int)pow(10.0, 8.0);
            num = num - arr[8] * (int)pow(10.0, 8.0);
            arr[7] = num / (int)pow(10.0, 7.0);
            num = num - arr[7] * (int)pow(10.0, 7.0);
            arr[6] = num / (int)pow(10.0, 6.0);
            num = num - arr[6] * (int)pow(10.0, 6.0);
            arr[5] = num / (int)pow(10.0, 5.0);
            num = num - arr[5] * (int)pow(10.0, 5.0);
            arr[4] = num / (int)pow(10.0, 4.0);
            num = num - arr[4] * (int)pow(10.0, 4.0);
            arr[3] = num / (int)pow(10.0, 3.0);
            num = num - arr[3] * (int)pow(10.0, 3.0);
            arr[2] = num / (int)pow(10.0, 2.0);
            num = num - arr[2] * (int)pow(10.0, 2.0);
            arr[1] = num / (int)pow(10.0, 1.0);
            num = num - arr[1] * (int)pow(10.0, 1.0);
            arr[0] = num;
        }
        else if (num >= (int)pow(10.0, 7.0))
        {
            arr[7] = num / (int)pow(10.0, 7.0);
            num = num - arr[7] * (int)pow(10.0, 7.0);
            arr[6] = num / (int)pow(10.0, 6.0);
            num = num - arr[6] * (int)pow(10.0, 6.0);
            arr[5] = num / (int)pow(10.0, 5.0);
            num = num - arr[5] * (int)pow(10.0, 5.0);
            arr[4] = num / (int)pow(10.0, 4.0);
            num = num - arr[4] * (int)pow(10.0, 4.0);
            arr[3] = num / (int)pow(10.0, 3.0);
            num = num - arr[3] * (int)pow(10.0, 3.0);
            arr[2] = num / (int)pow(10.0, 2.0);
            num = num - arr[2] * (int)pow(10.0, 2.0);
            arr[1] = num / (int)pow(10.0, 1.0);
            num = num - arr[1] * (int)pow(10.0, 1.0);
            arr[0] = num;
        }
        else if (num >= (int)pow(10.0, 6.0))
        {
            arr[6] = num / (int)pow(10.0, 6.0);
            num = num - arr[6] * (int)pow(10.0, 6.0);
            arr[5] = num / (int)pow(10.0, 5.0);
            num = num - arr[5] * (int)pow(10.0, 5.0);
            arr[4] = num / (int)pow(10.0, 4.0);
            num = num - arr[4] * (int)pow(10.0, 4.0);
            arr[3] = num / (int)pow(10.0, 3.0);
            num = num - arr[3] * (int)pow(10.0, 3.0);
            arr[2] = num / (int)pow(10.0, 2.0);
            num = num - arr[2] * (int)pow(10.0, 2.0);
            arr[1] = num / (int)pow(10.0, 1.0);
            num = num - arr[1] * (int)pow(10.0, 1.0);
            arr[0] = num;
        }
        else if (num >= (int)pow(10.0, 5.0))
        {
            arr[5] = num / (int)pow(10.0, 5.0);
            num = num - arr[5] * (int)pow(10.0, 5.0);
            arr[4] = num / (int)pow(10.0, 4.0);
            num = num - arr[4] * (int)pow(10.0, 4.0);
            arr[3] = num / (int)pow(10.0, 3.0);
            num = num - arr[3] * (int)pow(10.0, 3.0);
            arr[2] = num / (int)pow(10.0, 2.0);
            num = num - arr[2] * (int)pow(10.0, 2.0);
            arr[1] = num / (int)pow(10.0, 1.0);
            num = num - arr[1] * (int)pow(10.0, 1.0);
            arr[0] = num;
        }
        else if (num >= (int)pow(10.0, 4.0))
        {
            arr[4] = num / (int)pow(10.0, 4.0);
            num = num - arr[4] * (int)pow(10.0, 4.0);
            arr[3] = num / (int)pow(10.0, 3.0);
            num = num - arr[3] * (int)pow(10.0, 3.0);
            arr[2] = num / (int)pow(10.0, 2.0);
            num = num - arr[2] * (int)pow(10.0, 2.0);
            arr[1] = num / (int)pow(10.0, 1.0);
            num = num - arr[1] * (int)pow(10.0, 1.0);
            arr[0] = num;
        }
        else if (num >= (int)pow(10.0, 3.0))
        {
            arr[3] = num / (int)pow(10.0, 3.0);
            num = num - arr[3] * (int)pow(10.0, 3.0);
            arr[2] = num / (int)pow(10.0, 2.0);
            num = num - arr[2] * (int)pow(10.0, 2.0);
            arr[1] = num / (int)pow(10.0, 1.0);
            num = num - arr[1] * (int)pow(10.0, 1.0);
            arr[0] = num;
        }
        else if (num >= (int)pow(10.0, 2.0))
        {
            arr[2] = num / (int)pow(10.0, 2.0);
            num = num - arr[2] * (int)pow(10.0, 2.0);
            arr[1] = num / (int)pow(10.0, 1.0);
            num = num - arr[1] * (int)pow(10.0, 1.0);
            arr[0] = num;
        }
        else if (num >= (int)pow(10.0, 1.0))
        {
            arr[1] = num / (int)pow(10.0, 1.0);
            num = num - arr[1] * (int)pow(10.0, 1.0);
            arr[0] = num;
        }
        else{
            arr[0] = num;
        }
        return arr;
    }
    
    
    void main(){
        int num = 12321;
        int *p = Numcount(num);
        if ((*(p) == *(p + 4)) && (*(p+1) == *(p + 3)))
        {
            printf("%d是回文数
    ",num);
        }
        else{
            printf("%d不是回文数
    ", num);
        }
        system("pause");
    }

  • 相关阅读:
    Atitit 经济学常见的流派 古典主义与凯恩斯主义
    Atitit 学习方法 体系化学习方法 Excel 科目,分类,专业 三级分类。。 知识点。。 课程就是每一个知识点的详细化。。 比如经济学 类别 专业 xx概论知识点 3、金
    atiitt it学科体系化 体系树与知识点概念大总结.xlsx
    Atitit 减少财政支出普通人如何蹭政府补贴措施 attilax大总结.docx
    Atitit 信用管理概论 attilax学习心得
    Atitit.月度计划日程表 每月流程表v5
    Atitit 企业6大职能 attilax总结
    Atitit 常见每日流程日程日常工作.docx v8 ver ampm imp 签到 am y 天气情况检查 am y 晨会,每天或者隔天 am 每日计划(项目计划,日计划等。 am
    Atitit 财政赤字解决方案
    Atitit 建设自己的财政体系 attilax总结 1.1. 收入理论 2 1.2. 收入分类 2 1.3. 2 1.4. 非货币收入 2 1.5. 2 1.6. 降低期望 2 1.7.
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5151805.html
Copyright © 2011-2022 走看看