• C语言 百炼成钢4


    //题目10:打印楼梯,同时在楼梯上方打印两个笑脸。 
    
    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    
    
    //分析:楼梯,打印阶梯形状,涉及到行列,for循环
    
    void main6(){
        //假设个台阶,每个台阶宽3个单位,高3个单位
        //笑脸的字符是'1'
        //5个台阶,总高度就是5*3=15,同理宽度也是15
        //第一行,宽度是4*3=12,从12开始打印*号
        //行(y轴)
        int temp = 0;
        int temp2 = 0;
        char ch = '1';
        for (int i = 0; i < 11; i++)
        {
            temp = 8 - i / 2 * 2;
            if (temp + 4>11)
            {
                temp2 = 11;
            }
            else
            {
                temp2 = temp + 4;
            }
            //x轴
            for (int j = 0; j < 11; j++)
            {
                if (j>(temp-1)&&j<(temp+3))
                {
                    //开始打印*号
                    if (!(i % 2))
                    {
                        //打印3个*号
                        printf("*");
                    }
                    else{
                        //打印1个*号
                        if (j == temp)
                        {
                            printf("*");
                        }
                        else{
                            printf(" ");
                        }
                    }
                }
                else{
                    if (j == (temp -1))
                    {
                        if ((i % 2))
                        {
                            printf("%c", ch);
                            //printf("#");
                        }
                        else{
                            printf(" ");
                        }
                    }
                    else{
                        printf(" ");
                    }
                    
                }
                
            }
            printf("
    ");
        }
    
    
        system("pause");
    }

    //题目11:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
    //后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
    
    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    
    //分析:通过观察发现,1、1、2、3、5、8、13、21,n个月兔子的对数==(n-1)个月兔子的对数+(n-2)个月兔子的对数
    //这就是斐波那契数列,抽象为f(n)=f(n-1)+f(n-2)
    //可以使用递归,也可以使用数组
    
    
    //方法1
    int getnum(int n){
        if (n==2)
        {
            return 1;
        }
        if (n==1)
        {
            return 1;
        }
        return getnum(n - 1) + getnum(n - 2);
    }
    
    void main(){
        //方法1
        //printf("%d", getnum(8)*2);
    
        //方法2,使用数组,动态分配内存
        int num = 0;
        scanf("%d",&num);
        int *p = malloc(num * sizeof(int));
        //循环给数组赋值
        for (int i = 0; i < num; i++)
        {
            if (i==0)
            {
                *(p + i) = 1;
            }
            else{
                if (i==1)
                {
                    *(p + i) = 1;
                }
                else{
                    *(p + i) = *(p + i - 1) + *(p + i - 2);
                }
            }
            printf("%d
    ", *(p + i));
        }
    
    
    
        system("pause");
    }

    //题目12:判断101-200之间有多少个素数,并输出所有素数。
    
    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    
    //分析:素数:质数(prime number)又称素数,有无限个。除了1和它本身以外不再有其他的因数;否则称为合数。
    //想法做2个循环,一个循环101--200;第二个循环从1到某个数
    
    void main(){
        int index = 0;
        int k = 0;
        for (int i = 101; i < 201; i++)
        {
            //使得每次循环的量减少一半
            k =(int) sqrt(i + 1);
            int tenp = 1;
            for (int j = 2; j <= k; j++)
            {
                if (i%j==0)
                {
                    tenp = 0;
                    //说明可以整除,说明是合数,不是质数
                    break;
                }
            }
            if (tenp)
            {
                index++;
                printf("
    %d",i);
            }
        }
        printf("
    质数的总个数是%d",index);
        system("pause");
    }

  • 相关阅读:
    STL 算法 std::min
    SAP UI5 初学者教程之五:视图控制器初探 试读版
    SAP UI5 的初始化过程
    Angular 应用里的摇树优化
    Angular 应用里的 vendor.js 是用来干什么的?
    SAP UI5 初学者教程之四:XML 视图初探试读版
    SAP UI5 初学者教程之三:开始接触第一个 SAP UI5 控件 试读版
    SAP UI5 初学者教程之二:SAP UI5 的引导过程(Bootstrap) 试读版
    SAP UI5 初学者教程之一:Hello World 试读版
    SAP UI5 初学者教程的学习目录
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5148238.html
Copyright © 2020-2023  润新知