打印具有不同减少数量的星形(*)图案

时间:2014-03-16 12:10:14

标签: c

该计划是关于打印以下模式:

* * * * * * * * * * * * *  (13 stars)
* * * * * * * * * * *      (11 stars)
* * * * * * * *            ( 8 stars)
* * * * *                  ( 5 stars)
* *                        ( 2 stars)

我发现的逻辑是,当它更大11时,它将在下一行打印(i-2),如果 它小于或等于11然后将打印(i-3)

我不希望有一个现成的程序,但也会对解释感到满意。

2 个答案:

答案 0 :(得分:1)

我想你想知道这样一个序列的一般术语是什么。一旦你知道编码很简单。

让我揭示对于具有一些有限数量的术语的所有这样的序列,对它有无限多的表示。因此,争论或担心你对序列的解释是对还是错是没有意义的。所以你生成数字的逻辑是正确的,虽然它不是唯一正确的答案。例如,另一个可能的解决方案是enter image description here

你可以找到任何这样的可能的解决方案,在数学中找出一个可能的函数来表示所有的点集合被称为插值。这是interpolation calculator

答案 1 :(得分:-1)

#include<stdio.h>

main()
{
    int n=14, c, k, temp;

    temp = n;

    for ( c = 0 ; c <= 4 ; c++ )
    {
        for( k = 2 ; k <= temp ; k++ )
            printf("*");

        if(k<=13)
        {
             temp=temp-3;
        }
        else
        {
        temp=temp-2;
        } 
     printf("\t\t%d",k-2);
        printf("\n");
    }

    return 0;
}

enter image description here