输出倒等腰三角形

tmwanly 2013-04-17 10:23:01
如题 1.用两个for 一个"*"输出一个倒等腰三角形
2.用一个递归不用循环输出一个倒等腰三角形
***********
*********
*******
*****
***
*

或者有更好思路的也可以说下
...全文
608 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
FWJ_mag-liebe 2013-04-17
  • 打赏
  • 举报
回复
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);
}
starytx 2013-04-17
  • 打赏
  • 举报
回复
只会用循环,如果对格式化输出熟悉的话应该更简单
    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;
    }
tmwanly 2013-04-17
  • 打赏
  • 举报
回复
只会用三个for写
tmwanly 2013-04-17
  • 打赏
  • 举报
回复
谢谢大家,晚上结贴。
赵4老师 2013-04-17
  • 打赏
  • 举报
回复
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门! 递归函数关注以下几个因素 ·退出条件 ·参数有哪些 ·返回值是什么 ·局部变量有哪些 ·全局变量有哪些 ·何时输出 ·会不会导致堆栈溢出
lin5161678 2013-04-17
  • 打赏
  • 举报
回复
#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;
}
rocktyt 2013-04-17
  • 打赏
  • 举报
回复
感觉这题用递归是吃力不讨好啊 没有写出让自己很满意的,就不发递归版本的了
    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");
    }

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧