zoukankan      html  css  js  c++  java
  • C语言学习4-1: 汉若塔。10进制装二进制,8进制,16进制。杨辉三角。

    1.。。。。。。。。。。。。。。。。。。。。

    #include <stdio.h>
    
    void hanoi(char from, char pass, char to, unsigned n)
    {
        if (n == 1)
        {
            printf("%c ==> %c
    ", from, to);    
        }
        else
        {
            hanoi(from, to, pass, n - 1);    
            hanoi(from, pass, to, 1);
            hanoi(pass, from, to, n - 1);
        }
    }
    
    void hanoi1(char from, char pass, char to, unsigned n)
    {
        if (n == 0)
            return;
        hanoi(from, to, pass, n - 1);
        printf("%c ==> %c
    ", from, to);
        hanoi(pass, from, to, n - 1);
    }
    
    int main(void)
    {
        unsigned n;
    
        printf("pls input n: ");
        scanf("%d", &n);
    
        hanoi1('A', 'B', 'C', n);
    
        return 0;
    }

    2.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    #include <stdio.h>
    
    void __foo(unsigned n, unsigned radix)
    {
        unsigned q, r;
        static level;
    
        if (n <= 0)
            return;
    
        r = n % radix;
        q = n / radix;
    
        level++;
        __foo(q, radix);
        level--;
    
        if (r > 9)
            putchar(r - 10 + 'a');
        else
            putchar(r + '0');
    
        if (level % 4 == 0)
            putchar(' ');
    }
    
    void foo(unsigned n, unsigned radix)
    {
        if (n == 0)
        {
            printf("0
    ");
            return;
        }
    
        if (radix != 2 && radix != 8 && radix != 16)
            return;
    
        if (radix == 16)
            printf("0x");
        else if (radix == 8)
            printf("o");
        else
            printf("0b");
    
        __foo(n, radix);
    
        putchar('
    ');
    }
    
    int main(void)
    {
        unsigned n, base;
    
        printf("input n & base: ");
        scanf("%d%d", &n, &base);
    
        printf("transformed: ");
        foo(n, base);
    
        return 0;
    }

    level是用来分四个四个的

    3,。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    #include <stdio.h>
    
    unsigned yh_triangle(unsigned row, unsigned col)
    {
        if (col == 1 || row == col)
            return 1;
    
        return yh_triangle(row - 1, col - 1) + yh_triangle(row - 1, col);
    }
    
    int main(void)
    {
        unsigned n;
    
        printf("input n: ");
        scanf("%d", &n);
    
        int i, j;
        for (i = 1; i <= n; i++)
        {
            for (j = 1; j <= i; j++)    
            {
                printf("%4d ", yh_triangle(i, j));    
            }
            putchar('
    ');
        }
    
        return 0;
    }

    结果:

    input n: 6
       1
       1    1
       1    2    1
       1    3    3    1
       1    4    6    4    1
       1    5   10   10    5    1

  • 相关阅读:
    codeforces 349B Color the Fence 贪心,思维
    luogu_2022 有趣的数
    luogu_2320 [HNOI2006]鬼谷子的钱袋
    luogu_1879 [USACO06NOV]玉米田Corn Fields
    SAC E#1
    luogu_1984 [SDOI2008]烧水问题
    luogu_2085 最小函数值
    luogu_1631 序列合并
    luogu_1196 银河英雄传说
    luogu_1037 产生数
  • 原文地址:https://www.cnblogs.com/will-boot/p/3294953.html
Copyright © 2011-2022 走看看