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");
    }

  • 相关阅读:
    jmeter的插件安装
    linux下性能监控工具nmon的使用
    kafka如何保证不重复消费又不丢失数据_Kafka写入的数据如何保证不丢失?
    Goroutine和Panic
    go 并发有趣现象和要避开的坑
    Go语言宕机恢复(recover)——防止程序崩溃
    invalid character 'è' looking for beginning of value
    golang实现RPC的几种方式
    channl与select
    我要在栈上。不,你应该在堆上
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5151805.html
Copyright © 2011-2022 走看看