用C打印图案

时间:2015-09-25 09:17:14

标签: c

我希望用C语言打印一个模式:

$(function () {

    $('.input').append("<input class='chat_input'>")

    $(document).find('.chat_input').on('keypress', function (ev) {
        console.log(ev)
    });
});

目前我有这个:

1
2  6
3  7  10
4  8  11  13
5  9  12  14  15

我没有得到理想的结果。请任何人帮忙

4 个答案:

答案 0 :(得分:4)

基本上,如果你分析每一行数字之间的差异:

if (ctx._source.tags.indexOf(newTag) < 0) {
      ctx._source.tags[ctx._source.tags.length] = newTag;
      ctx._source.tag_suggest.input[ctx._source.tag_suggest.length] = newTag;
}

然后对于每一列(除了第一行等于该行),公式为:

    1  
    2  6  
    3  7  10  
    4  8  11  13  
    5  9  12  14  15  
       ^   ^  ^   ^
diff   4   3  2   1 

例如,最后一行:

      col_value = val(row, col-1) + (5-col))

代码:

    5  9  12  14  15  

    9 = 5 + (5-1)
    12 = 9 + (5-2)
    14 = 12 + (5-3)
    15 = 14 + (5-4)

答案 1 :(得分:1)

检查一下:

int main()
{
int i,j;
for(i=1;i<=5;i++)
{
    int temp = 4;
    int sum = 0;
    for(j=1;j<=i;j++)
    {
        if (j == 1)
            sum = i;
        else{
            sum = sum + temp --;
        }
        printf("%d ",sum);
    }
    printf("\n");
}
}

答案 2 :(得分:1)

int main () {
    int k,i, j;
    for (i = 1; i <=5; i++) {
        k = i;
        for (j = 1; j <= i; j++) {
            printf ("%d ", k);
            k = k + (5-j);
        }
        printf ("\n");
    }
}

逻辑很直接。

1)一行中的元素数等于行号。因此,使用j = 1到j <= i

的内循环

2)如果您看到模式,您观察到每一行都以数字等于行索引开头,则下一个数字为+4,然后是+3,依此类推。

3)因此使用k = k +(5-j)

答案 3 :(得分:0)

int main()
{
int i,j,temp=0,l;
for(i=1;i<=5;i++)
{
    l=4;
    temp = i;
    for(j=1;j<=i;j++)
    {
        if(j>1)
        {
            printf("%d\t",temp+l);
            temp = temp+l;
            l=l-1;
        }
        else
            printf("%d\t",i);
    }
    printf("\n");
  }
  getch();
  return 0;
}