C++输出星号(*)正三角形

来源:百度知道 编辑:UC知道 时间:2024/05/15 09:45:54

int main() {
const int mid = 20;//三角形中线位置
int len;
cout << "input length of edge:";
cin >> len;

for(int i = 1; i <= len; ++i) {
for(int j = 1; j <= mid - i; ++j)
cout << ' ';
for(int k = 1; k <= i; ++k)
cout << '*' << ' ';
cout << endl;
}
}

这太难了,正三角形要求高是底边的根号3倍,所以打不出正三角形,只能近似做。
把根号3近似成1.732,高是1732,底边长1000,两者都除以他们的最大公约数,高为433,底边长250。(x,y)-x是行号,y是列号,你可以在(433,0),(433,250),(0,125)三个地方打三个星号,出来的近似是正三角形

给,已经在VC上编译运行确认过了:

#include<iostream>
using namespace std;

#define N 9 //这儿可以定义成你想要的输出行数,我暂定的输出9行的正三角形

int main()
{
for(int i=1,m=N;i<14;i++,i++,m--)
{
for(int n=m;n>=0;n--)
cout<<" ";
for(int j=i;j>0;j--)
cout<<"*";
cout<<endl;
}
}

顶二楼。
用坐标旋转公式甚至可以证明在一个坐标平面上正三角形的三个顶点坐标不