C语言 金字塔错位求和 C语言输出一下形式金字塔 3 3 3 6 6 12 这种形式的程序

发布网友 发布时间:2022-04-25 16:55

我来回答

3个回答

热心网友 时间:2023-11-11 16:56

是这样一个形式么?
3
3 3
6 6 6
12 12 12 12
1.首先你要找到规律
第1排:1个数,数字为3
第2排:2个数,数字为3(和上一排数字相同)
第3排:3个数,数字为6(上一排数字乘以2)
第4排:4个数,数字为12(上一排数字乘以2)

所以1,2排没有规律,为固定数字3
其余第n牌:n个数,数字为n-1牌数字乘以2

2.代码(注意包含头文件 #include <stdio.h>)
int i;//当前在第几排
int j;//当前在第几列
int n=7;//一共打印几排
int num=3;
printf("%d\n",num);
for (i=2;i<n+1;i++)
{
for(j=0;j<i;j++)//控制该排打印几列,因为列数等于行号所以j<i
{
printf("%d",num);
printf(" ");//打印空格
}
printf("\n");//打印回车
num=num*2;
}

3.上面打印的是第1列对齐的金字塔,如果要打印标准的金字塔型,则要计算最后一排的总列数
,然后计算每排在打印数字前需要打印几个空格即可

热心网友 时间:2023-11-11 16:56

输出数字的金字塔么? 大概是什么样子?追问333
66
12

追答就这样的三行吗? 就输出这几个数吗? 有什么规律么

热心网友 时间:2023-11-11 16:57

输出:
please enter a number: 3
the 1 number: 3
the 2 number: 3
the 3 number: 3
3 3 3
6 6
12
/////////////////////////////////////////////////////////////
/*此代码支持多个数字,代码如下 */
/////////////////////////////////////////////////////////////

#include <stdio.h>

int main()
{
int n, i, j;
printf("please enter a number: ");
scanf("%d", &n);
int k = n;
int** pyramid = new int*[n];
for (i = 0; i < n; ++i)
{
pyramid[i] = new int[n];
}
for (i = 0; i < n; ++i)
{
printf("the %d number: ", i + 1);
scanf("%d", &pyramid[0][i]);
}
for (i = 0; i != n; ++i)
{
for (j = 0; j != n - i - 1; ++j)
{
pyramid[i + 1][j] = pyramid[i][j] + pyramid[i][j + 1];
}
}
for (i = 0; i != n; ++i)
{
for (j = 0; j != k; ++j)
{
printf("%d ", pyramid[i][j]);
}
k--;
printf("\n");
}
for (i = 0; i < n; ++i)
{
delete []pyramid[i];
}
delete []pyramid;
return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com