1.问题描述
输入数字,输出相应的三角塔:
例如:
解题思路:
找到数学规律,在相应的位置上,输出相应的数字,具体见代码:
代码实现:
#include <iostream>
using namespace std;
int main(){
/*
* 输入一个数字N,输出N行数据,数据依次为增大
* 输入1---1
* 输入2----1
* 2 3
* 输入3------1
* 2 3
* 4 5 6
*/
int n; //接收用户输入的数字
cin>>n;
//共输出n行数据,n行数据一共有1+2+3+...n个数据,即
//第i行的数据个数为i,一共占位i+i-1=2i-1个位置
//一共有n行,每一行都有2n-1个位置,一定是奇数
//判断输入的合法性
if(n<=0)
{
cout<<"输入的数据不合法!"<<endl;
return 0;
}
int num=1; //要填充的数据
for(int i=1;i<=n;++i)
{
//第i行数据的内容
//还需要和i结合起来
//这一段可以确保每一行的开始位置是正确的
for(int j=1;j<=n-i;++j)
{
printf(" ");
}
//第i行输出i个数据
//K是次数
for(int k=1;k<=i;++k)
{
printf("%d ",num);
num++;
}
//换行
printf("\n");
}
return 0;
}
问题:
输入的数据大时,会有对不齐的情况出现,以后再完善!
今天写代码时,女朋友就在身边,幸福!