原题链接:https://ac.nowcoder.com/acm/contest/19305/1002
题目描述
打印数字三角形,从1开始输出,第i行输出i个数,每个数字按4个位置输出
注:c语言中 %4d可以输出一个数,占据四个位置,右对齐。
输入描述:
输入一行,包含一个整数n
1 <= n <= 1000
输出描述:
输出n行,第i行,有i个数, 每个数占据四个位置。
示例1
输入
4
输出
一个for循环顺序打印1,2,...问题不大
考点在何时打印回车
显然,打印一个数后回车,然后打印两个数后回车,...
在每次打印数字结束后塞一个if判断,设一个变量作为累加器,第1次累加到1后打印回车并清空,第2次累加到2后打印回车并清空,...
代码如下
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int n,total;
cin >> n;
total=n*(n+1)/2;//打印数字总个数
int p=0,q=1;//p作为累加器,每次打印都累加1,累加至终值后清空
//q作为累加器的终值,每次打印回车后+1
for(int i=1;i<=total;i++)
{
p++;
printf("%4d",i);
if(q==p)
{
printf("\n");
p=0;
q++;
}
}
return 0;
}
京公网安备 11010502036488号