例如输入5,输出下面这些
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
#include<stdio.h>
int main()
{
int n,k=0;
scanf("%d",&n);
for (int i=0;i<n;i++)//这个循环就说明将会有n行输出
{
for (int j=0;j<=i;j++){//这个循环规定n行就输出n个数字
k++;
printf("%d ",k);//%d后面还有一个空格
}
printf("\n");//输出一行之后就换行
}
}
用这个代码就可以解决问题了,记得采纳哦!
分析一下:输入5,打印了5行。
如果输入n就是打印n行,第i行输入i个数,而每一行的第一个数,都是上一行最后一个数,加1。那么我就可以设置一个中间变量,记录上一行的最后一个数。
代码如下:
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int temp = 0;//中间变量
for(int i = 1;i<=n;i++)
{
for(int j = 1;j<=i;j++)
{
printf("%d ",j+temp);
if(j==i)
{
temp = j+temp;
printf("\n");
}
}
}
return 0;
}
效果图
双循环就可以了
int k = 1;
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
printf("%d ",k++);
printf("\n");
}
#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 10;
int n;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
int cnt = 1;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= i; j++) {
cout<<cnt<<" ";
cnt++;
}
cout<<endl;
}
return 0;
}