Educoder-程序设计基础: 多重循环

第1关:乘法表

​ 本关任务:输出n * n乘法表

#include <stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            printf("%d*%d=%d ", i, j, i * j);
            if (j == n)printf("\n");
        }
    }
    return 0;
}

第2关:乘法表(下三角)

​ 本关任务:编写一个小程序,输出乘法表下三角的前n行

#include <stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            printf("%d*%d=%d ", i, j, i * j);
            if (j==i) {
                printf("\n");
                break;
            }
        }
    }
    return 0;
}

法二

#include  <stdio.h>
int main()
{	
    //****补全代码****
    int i,j,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        printf("%d*%d=%d ",i,j,i*j);
        printf("\n");
    }
    return 0;
}

第3关:n钱买n鸡

​ 本关任务:编写一个小程序,求n钱买n鸡一共有多少种买法。 已知公鸡5元一只,母鸡3元一只,小鸡一元3只。现在有n元,想买n只鸡,求有多少种买法。每种鸡可以买若干只,也可以不买

#include  <stdio.h>
int main()
{
    int i, j, k, n;
    int sum = 0;
    scanf("%d", &n);
    for (i = 0; i <= 100; i++)      //i和j范围可以依题目不同而不同,减少运行时间
        for (j = 0; j <= 100; j++)
        {
            if (5 * i + 3 * j + (n - i - j) / 3 == n && (n - i - j) % 3 == 0)
            {
                sum = sum + 1;
            }
        }
    printf("%d", sum);
    return 0;
}

第4关:输出三角形

​ 本关任务:编写小程序,输出边长为n的三角形

#include  <stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n - i - 1; j++)     //先打空格
            printf(" ");
        for (int j = n - i - 1; j < n + i; j++)   //从空格结束时打+,数量为2*i+1
            printf("+");
        printf("\n");
    }
    return 0;
}

第5关:输出空心三角形

​ 本关任务:编写一个小程序,输出边长为n的空心三角形。

#include  <stdio.h>
int main()
{
    int n, i, m, j;
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        for (m = 1; m <= n - i; m++)
        {
            printf(" ");
        }
        if (i > 1)
        {
            printf("+");
            for (j = 1; j < 2 * (i - 1); j++)
            {
                if (i < n)
                    printf(" ");
                else
                    printf("+");
            }
        }
        printf("+\n");
    }
    return 0;
}

第6关:求水仙花数个数

​ 输入两个三位正整数m和n,求[m,n]范围内有多少个水仙花数

#include  <stdio.h>
int main()
{
    int i, n, a, b, sum = 0, x, y, z;
    scanf("%d%d", &a, &b);
    for (i = a; i <= b; i++)
    {
        x = i / 100;
        y = i / 10 % 10;
        z = i % 10;
        if (i == x * x * x + y * y * y + z * z * z)
            sum = sum + 1;
    }
    printf("%d", sum);
    return 0;
}

第7关:判断素数

​ 求是否存在[m,n]范围内的整数x,使得x²+x+41是合数。一个正整数a是合数,如果存在另一个正整数b能整除a,且b\=1,b\=a.例如6是合数,因为2能整除6

#include  <stdio.h>
int main()
{
    int m, n, a, b, c;
    scanf("%d%d", &m, &n);
    for (a = m; a <= n; a++)
    {
        b = a * a + a + 41;
        for (int i = 2; i < b; i++)
        {
            if (b % i == 0)
                c++;
        }
    }
    if (c != 0)
        printf("yes");
    else
        printf("no");
    return 0;
}
posted @ 2021-07-16 16:17  颜骏  阅读(1028)  评论(0编辑  收藏  举报