首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

输出倒等腰三角形解决思路

2013-04-21 
输出倒等腰三角形如题 1.用两个for 一个*输出一个倒等腰三角形2.用一个递归不用循环输出一个倒等腰三角

输出倒等腰三角形
如题 1.用两个for 一个"*"输出一个倒等腰三角形
     2.用一个递归不用循环输出一个倒等腰三角形
     ***********
      *********
       *******
        *****
         ***
          *
输出倒等腰三角形解决思路
或者有更好思路的也可以说下

[解决办法]
只会用循环,如果对格式化输出熟悉的话应该更简单

    int nNum ;
    cin >> nNum;
    for (int i = nNum; i  >= 0 ; i-=2)
    {
        for (int j = 0; j != nNum; j++)
        {
            if (j < (nNum-i)/2 
[解决办法]
 j >= i+(nNum-i)/2)
            {
                cout << " ";
            }
            else
            {
                cout << "*";
            }
        }
        cout << endl;
    }

[解决办法]
string f(int, int);
int main()
{
int n, i=0;
cin>>n;
string s=O(i, n);
cout<<s;
}
string f(int i, int n)
{
if (i==(n+1)/2) return "";
return string(i, ' ')+string(n-2*i, '*')+"\n"+f(i+1, n);
}

[解决办法]
感觉这题用递归是吃力不讨好啊
没有写出让自己很满意的,就不发递归版本的了
    int n=6;
    for(int i=0; i<n; i++)
    {
        printf("%*s", i, "");
        for(int j=0; j<2*(n-i)-1; j++)
            printf("*");
        printf("\n");
    }

[解决办法]
#include <stdio.h>
int main()
{
char str[] = "***********";
int len = sizeof str - 1;

for(int i=0; i<=len/2; ++i)
printf("%*.*s\n", len-i, len-i*2, str);

int fir = 0;
while(fir < len)
{
puts(str);
str[fir++] = str[--len] = ' ';
}


return 0;
}


[解决办法]
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出

热点排行