优化代码

14号选手 2013-05-22 05:46:10
中午休息之余,看到一个交流群里面的群友问到一个关于输出正反金字塔字母的图形的问题,闲来无聊就写了一下,不过写的较为粗略,所以不知道大家有什么比较好的办法,有好办法的话贴出来共同学习一下

输出地图形如下所示:


我写的代码如下(希望大家能就此优化一下代码):
#include <stdio.h>

int main(void){
int flag=2;
for(int i=1;i<=9&&i>0;i+=flag){
//打印空格
for(int j=(9-i)/2;j>0;j--)
putchar(' ');
//左边部分
for(int k=1;k<=(i+1)/2;k++){
putchar('a'+k-1);
}
//右边部分
for(int m=(i-1)/2;m>0;m--){
putchar('a'+m-1);
}
putchar('\n');
if(i==9)
flag=-2;
}
return 0;
}
...全文
318 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
www_adintr_com 2013-05-23
  • 打赏
  • 举报
回复
引用 9 楼 xuchao1229 的回复:
[quote=引用 2 楼 adlay 的回复:]

int main(void)
{
	static char ccode[] = { 'e', 'd', 'c', 'b', 'a', ' ', ' ', ' '};
	for(int i = 0; i < 9; ++i)
	{
		for(int j = 0; j < 9; ++j)
		{
			int x = abs(4 - i) + abs(4 - j);
			putchar(ccode[x]);
		}

		putchar('\n');
	}
}
这个好是好,但是时间复杂度也达到了O(n^2)了[/quote] 你是要优化程序结构还是要优化运行效率.... 要运行效率的话, 用 C++ 的模板, 时间复杂度 O(1)
rickys2080 2013-05-23
  • 打赏
  • 举报
回复
得,再给您看一个:
#include <stdio.h>

#define high 9			//高度 
#define strhigh "9"

#define print(x) printf("%"strhigh"."strhigh"s", x);

int main(int argc, char *argv[])
{
	char c1[] = "                         abcdefghigklmnopqrstuvwxyz";//25个空格+字母表 
	char c2[] = "zyxwvutsrqponmlkgihgfedcba";//倒序字母表 
	int i, k;

	for(i=0; i<high; i++)
	{
		print(c1+26-(high-i));
		printf("%s\n", c2+26-i);
	}
	for(i=high-2; i>=0; i--)
	{
		print(c1+26-(high-i));
		printf("%s\n", c2+26-i);
	}

	return 0;
}
rickys2080 2013-05-23
  • 打赏
  • 举报
回复
嗨,上面我的程序虽然两个for,但是每个for负责一半,跟你那个程序是一样的效果啊,你若非得把两个for合并,也可以的。 但这不是重点,重点你看——我的没有for循环嵌套
rickys2080 2013-05-23
  • 打赏
  • 举报
回复
引用 14 楼 xuchao1229 的回复:
O(∩_∩)O~ 是准备看的,但是只能连续回复三次就不能回复了,csdn这个bug满坑爹的 你的这个是扩展的了啊,也很不错的,不过你是把它拆分成上下两部分来输出吧? 和到一起不是更好,就像我写的那个一样,用一个控制变量最后倒着输出回去
得,我这还有效率更好的——绝对没有for循环嵌套:
#include <stdio.h>
#define print(n, m, s)	printf("%"##n##.##m##"s", s);

int main(int argc, char *argv[])
{
	char c1[] = "abcdefghigklmnopqrstuvwxyz";
	char c2[] = "zyxwvutsrqponmlkgihgfedcba";
	char high = 0, tmp = 0;
	int i, k;

	printf("请输入你要的金字塔高度:");
	scanf("%d", &high);
	if(high>26)
	{
		printf("没那么多英文字母⊙﹏⊙\n");
		return 0;
	}
	
	for(i=0; i<high; i++)
	{
		tmp = c1[i+1];
		c1[i+1] = 0;
		printf("%26s", c1);
		c1[i+1] = tmp;
		
		printf("%s\n", c2+26-i);
	}
	for(i=high-2; i>=0; i--)
	{
		tmp = c1[i+1];
		c1[i+1] = 0;
		printf("%26s", c1);
		c1[i+1] = tmp;

		printf("%s\n", c2+26-i);
	}
	return 0;
}
14号选手 2013-05-23
  • 打赏
  • 举报
回复
引用 25 楼 outvice 的回复:
[quote=引用 10 楼 xuchao1229 的回复:] [quote=引用 3 楼 syrchina 的回复:] 消灭除法,效率翻翻:
#include <stdio.h>

int main(void)
{
    int flag=2;
    for(int i=1; i<=9&&i>0; i+=flag)
    {
        //打印空格
        for(int j=(9-i)>>1; j>0; j--)
            putchar(' ');
        //左边部分
        for(int k=1; k<=(i+1)>>1; k++)
        {
            putchar('a'+k-1);
        }
        //右边部分
        for(int m=(i-1)>>1; m>0; m--)
        {
            putchar('a'+m-1);
        }
        putchar('\n');
        if(i==9)
            flag=-2;
    }
    return 0;
}
位运算还真没有想到,不错的办法,体现出了c语言的底层操控能力[/quote] 优化本来就从最基本的加减乘除开始,减少浮点运算等等。[/quote] 恩,对,小小的改动,从底层的考虑使得程序的运行效率提升了不少
14号选手 2013-05-23
  • 打赏
  • 举报
回复
引用 26 楼 syrchina 的回复:
[quote=引用 24 楼 xuchao1229 的回复:] [quote=引用 22 楼 syrchina 的回复:] 超越不了赵老师了: ……
呵呵,你写的很好啊,打开了我的思路,老赵这个的话看起来很短小精悍,不过空间复杂度起来了,时间复杂是不是也有O(n^2)?[/quote] 其实没有啦,赵老师外层那个for只是把26种情况都打印出来了 得,我再在赵老师的基础上修改一点点:
#include <stdio.h>
#define ab(i) ( (i^(i>>sizeof(i)))-(i>>sizeof(i)) ) //abs(),这样就不用#include <stdlib.h>了
char c1[]="abcdefghigklmnopqrstuvwxyz";
char c2[]="zyxwvutsrqponmlkgihgfedcba";
int n,i,k;
int main(int argc, char *argv[])
{
	printf("请输入高度:");
	scanf("%d", &n);
	n = n % 26;

	for (i=1-n; i<n; i++)
	{
		k=n-ab(i);
		printf("%*.*s",n,k,c1);//略有改变
		printf("%s\n",c2+27-k);
	}
	return 0;
}
向赵老师致敬 空间换时间一下:
#include <stdio.h>
int main(int argc, char *argv[])
{

char c[][52] = {
"                        a","\
                        aba","\
                       abcba","\
                      abcdcba","\
                     abcdedcba","\
                    abcdefedcba","\
                   abcdefgfedcba","\
                  abcdefghgfedcba","\
                 abcdefghihgfedcba","\
                abcdefghigihgfedcba","\
               abcdefghigkgihgfedcba","\
              abcdefghigklkgihgfedcba","\
             abcdefghigklmlkgihgfedcba","\
            abcdefghigklmnmlkgihgfedcba","\
           abcdefghigklmnonmlkgihgfedcba","\
          abcdefghigklmnoponmlkgihgfedcba","\
         abcdefghigklmnopqponmlkgihgfedcba","\
        abcdefghigklmnopqrqponmlkgihgfedcba","\
       abcdefghigklmnopqrsrqponmlkgihgfedcba","\
      abcdefghigklmnopqrstsrqponmlkgihgfedcba","\
     abcdefghigklmnopqrstutsrqponmlkgihgfedcba","\
    abcdefghigklmnopqrstuvutsrqponmlkgihgfedcba","\
   abcdefghigklmnopqrstuvwvutsrqponmlkgihgfedcba","\
  abcdefghigklmnopqrstuvwxwvutsrqponmlkgihgfedcba","\
 abcdefghigklmnopqrstuvwxyxwvutsrqponmlkgihgfedcba","\
abcdefghigklmnopqrstuvwxyzyxwvutsrqponmlkgihgfedcba","\
 abcdefghigklmnopqrstuvwxyxwvutsrqponmlkgihgfedcba","\
  abcdefghigklmnopqrstuvwxwvutsrqponmlkgihgfedcba","\
   abcdefghigklmnopqrstuvwvutsrqponmlkgihgfedcba","\
    abcdefghigklmnopqrstuvutsrqponmlkgihgfedcba","\
     abcdefghigklmnopqrstutsrqponmlkgihgfedcba","\
      abcdefghigklmnopqrstsrqponmlkgihgfedcba","\
       abcdefghigklmnopqrsrqponmlkgihgfedcba","\
        abcdefghigklmnopqrqponmlkgihgfedcba","\
         abcdefghigklmnopqponmlkgihgfedcba","\
          abcdefghigklmnoponmlkgihgfedcba","\
           abcdefghigklmnonmlkgihgfedcba","\
            abcdefghigklmnmlkgihgfedcba","\
             abcdefghigklmlkgihgfedcba","\
              abcdefghigklkgihgfedcba","\
               abcdefghigkgihgfedcba","\
                abcdefghigihgfedcba","\
                 abcdefghihgfedcba","\
                  abcdefghgfedcba","\
                   abcdefgfedcba","\
                    abcdefedcba","\
                     abcdedcba","\
                      abcdcba","\
                       abcba","\
                        aba","\
                         a"
};

	int high, i;
	printf("请输入高度:");
	scanf("%d", &high);

	for(i=0; i<high; i++)
		printf("%s\n", c[i]);
	for(i=52-high; i<51; i++)
		printf("%s\n", c[i]);

	return 0;
}
[/quote] 改的确实精妙,思路虽然改了,分成两个部分来输出了,利用printf函数的*修饰符的特性把空格和墙面部分的字母一起输出了,这个我还真没想到
rickys2080 2013-05-23
  • 打赏
  • 举报
回复
引用 24 楼 xuchao1229 的回复:
[quote=引用 22 楼 syrchina 的回复:] 超越不了赵老师了: ……
呵呵,你写的很好啊,打开了我的思路,老赵这个的话看起来很短小精悍,不过空间复杂度起来了,时间复杂是不是也有O(n^2)?[/quote] 其实没有啦,赵老师外层那个for只是把26种情况都打印出来了 得,我再在赵老师的基础上修改一点点:
#include <stdio.h>
#define ab(i) ( (i^(i>>sizeof(i)))-(i>>sizeof(i)) ) //abs(),这样就不用#include <stdlib.h>了
char c1[]="abcdefghigklmnopqrstuvwxyz";
char c2[]="zyxwvutsrqponmlkgihgfedcba";
int n,i,k;
int main(int argc, char *argv[])
{
	printf("请输入高度:");
	scanf("%d", &n);
	n = n % 26;

	for (i=1-n; i<n; i++)
	{
		k=n-ab(i);
		printf("%*.*s",n,k,c1);//略有改变
		printf("%s\n",c2+27-k);
	}
	return 0;
}
向赵老师致敬 空间换时间一下:
#include <stdio.h>
int main(int argc, char *argv[])
{

char c[][52] = {
"                        a","\
                        aba","\
                       abcba","\
                      abcdcba","\
                     abcdedcba","\
                    abcdefedcba","\
                   abcdefgfedcba","\
                  abcdefghgfedcba","\
                 abcdefghihgfedcba","\
                abcdefghigihgfedcba","\
               abcdefghigkgihgfedcba","\
              abcdefghigklkgihgfedcba","\
             abcdefghigklmlkgihgfedcba","\
            abcdefghigklmnmlkgihgfedcba","\
           abcdefghigklmnonmlkgihgfedcba","\
          abcdefghigklmnoponmlkgihgfedcba","\
         abcdefghigklmnopqponmlkgihgfedcba","\
        abcdefghigklmnopqrqponmlkgihgfedcba","\
       abcdefghigklmnopqrsrqponmlkgihgfedcba","\
      abcdefghigklmnopqrstsrqponmlkgihgfedcba","\
     abcdefghigklmnopqrstutsrqponmlkgihgfedcba","\
    abcdefghigklmnopqrstuvutsrqponmlkgihgfedcba","\
   abcdefghigklmnopqrstuvwvutsrqponmlkgihgfedcba","\
  abcdefghigklmnopqrstuvwxwvutsrqponmlkgihgfedcba","\
 abcdefghigklmnopqrstuvwxyxwvutsrqponmlkgihgfedcba","\
abcdefghigklmnopqrstuvwxyzyxwvutsrqponmlkgihgfedcba","\
 abcdefghigklmnopqrstuvwxyxwvutsrqponmlkgihgfedcba","\
  abcdefghigklmnopqrstuvwxwvutsrqponmlkgihgfedcba","\
   abcdefghigklmnopqrstuvwvutsrqponmlkgihgfedcba","\
    abcdefghigklmnopqrstuvutsrqponmlkgihgfedcba","\
     abcdefghigklmnopqrstutsrqponmlkgihgfedcba","\
      abcdefghigklmnopqrstsrqponmlkgihgfedcba","\
       abcdefghigklmnopqrsrqponmlkgihgfedcba","\
        abcdefghigklmnopqrqponmlkgihgfedcba","\
         abcdefghigklmnopqponmlkgihgfedcba","\
          abcdefghigklmnoponmlkgihgfedcba","\
           abcdefghigklmnonmlkgihgfedcba","\
            abcdefghigklmnmlkgihgfedcba","\
             abcdefghigklmlkgihgfedcba","\
              abcdefghigklkgihgfedcba","\
               abcdefghigkgihgfedcba","\
                abcdefghigihgfedcba","\
                 abcdefghihgfedcba","\
                  abcdefghgfedcba","\
                   abcdefgfedcba","\
                    abcdefedcba","\
                     abcdedcba","\
                      abcdcba","\
                       abcba","\
                        aba","\
                         a"
};

	int high, i;
	printf("请输入高度:");
	scanf("%d", &high);

	for(i=0; i<high; i++)
		printf("%s\n", c[i]);
	for(i=52-high; i<51; i++)
		printf("%s\n", c[i]);

	return 0;
}
素事 2013-05-23
  • 打赏
  • 举报
回复
引用 10 楼 xuchao1229 的回复:
[quote=引用 3 楼 syrchina 的回复:] 消灭除法,效率翻翻:
#include <stdio.h>

int main(void)
{
    int flag=2;
    for(int i=1; i<=9&&i>0; i+=flag)
    {
        //打印空格
        for(int j=(9-i)>>1; j>0; j--)
            putchar(' ');
        //左边部分
        for(int k=1; k<=(i+1)>>1; k++)
        {
            putchar('a'+k-1);
        }
        //右边部分
        for(int m=(i-1)>>1; m>0; m--)
        {
            putchar('a'+m-1);
        }
        putchar('\n');
        if(i==9)
            flag=-2;
    }
    return 0;
}
位运算还真没有想到,不错的办法,体现出了c语言的底层操控能力[/quote] 优化本来就从最基本的加减乘除开始,减少浮点运算等等。
14号选手 2013-05-23
  • 打赏
  • 举报
回复
引用 22 楼 syrchina 的回复:
超越不了赵老师了:
#include <stdio.h>
#define ab(i) ( (i^(i>>31))-(i>>31) ) //abs()
char c1[]="abcdefghigklmnopqrstuvwxyz";
char c2[]="zyxwvutsrqponmlkgihgfedcba";
int n,i,k;
int main(int argc, char *argv[]) 
{
	printf("请输入高度:");
	scanf("%d", &n);
	n -= 1;
	
    for (i=-n;i<=n;i++) 
	{
       k=n+1-ab(i);
       printf("%*s%.*s",ab(i),"",k,c1);
       printf("%s\n",c2+27-k);
   }
    return 0;
}
呵呵,你写的很好啊,打开了我的思路,老赵这个的话看起来很短小精悍,不过空间复杂度起来了,时间复杂是不是也有O(n^2)?
14号选手 2013-05-23
  • 打赏
  • 举报
回复
引用 16 楼 syrchina 的回复:
嗨,上面我的程序虽然两个for,但是每个for负责一半,跟你那个程序是一样的效果啊,你若非得把两个for合并,也可以的。 但这不是重点,重点你看——我的没有for循环嵌套
恩,这我知道,所以效率就好一些的
rickys2080 2013-05-23
  • 打赏
  • 举报
回复
超越不了赵老师了:
#include <stdio.h>
#define ab(i) ( (i^(i>>31))-(i>>31) ) //abs()
char c1[]="abcdefghigklmnopqrstuvwxyz";
char c2[]="zyxwvutsrqponmlkgihgfedcba";
int n,i,k;
int main(int argc, char *argv[]) 
{
	printf("请输入高度:");
	scanf("%d", &n);
	n -= 1;
	
    for (i=-n;i<=n;i++) 
	{
       k=n+1-ab(i);
       printf("%*s%.*s",ab(i),"",k,c1);
       printf("%s\n",c2+27-k);
   }
    return 0;
}
Yalye 2013-05-23
  • 打赏
  • 举报
回复
引用 19 楼 zhao4zhong1 的回复:
#include <stdio.h>
#include <stdlib.h>
char c1[]="abcdefghigklmnopqrstuvwxyz";
char c2[]="zyxwvutsrqponmlkgihgfedcba";
int n,i,k;
int main(int argc, char *argv[]) {
    for (n=0;n<26;n++) {
        printf("%d\n",n+1);
        for (i=-n;i<=n;i++) {
            k=n+1-abs(i);
            printf("%*s%.*s",abs(i),"",k,c1);
            printf("%s\n",c2+27-k);
        }
    }
    return 0;
}
嗯嗯...
rickys2080 2013-05-23
  • 打赏
  • 举报
回复
引用 19 楼 zhao4zhong1 的回复:
#include <stdio.h>
#include <stdlib.h>
char c1[]="abcdefghigklmnopqrstuvwxyz";
char c2[]="zyxwvutsrqponmlkgihgfedcba";
int n,i,k;
int main(int argc, char *argv[]) {
    for (n=0;n<26;n++) {
        printf("%d\n",n+1);
        for (i=-n;i<=n;i++) {
            k=n+1-abs(i);
            printf("%*s%.*s",abs(i),"",k,c1);
            printf("%s\n",c2+27-k);
        }
    }
    return 0;
}
嘿,赵老师您个大闲人终于出来了哈
赵4老师 2013-05-23
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
char c1[]="abcdefghigklmnopqrstuvwxyz";
char c2[]="zyxwvutsrqponmlkgihgfedcba";
int n,i,k;
int main(int argc, char *argv[]) {
    for (n=0;n<26;n++) {
        printf("%d\n",n+1);
        for (i=-n;i<=n;i++) {
            k=n+1-abs(i);
            printf("%*s%.*s",abs(i),"",k,c1);
            printf("%s\n",c2+27-k);
        }
    }
    return 0;
}
//1
//a
//2
// a
//aba
// a
//3
//  a
// aba
//abcba
// aba
//  a
//4
//   a
//  aba
// abcba
//abcdcba
// abcba
//  aba
//   a
//5
//    a
//   aba
//  abcba
// abcdcba
//abcdedcba
// abcdcba
//  abcba
//   aba
//    a
//6
//     a
//    aba
//   abcba
//  abcdcba
// abcdedcba
//abcdefedcba
// abcdedcba
//  abcdcba
//   abcba
//    aba
//     a
//......
//26
//                         a
//                        aba
//                       abcba
//                      abcdcba
//                     abcdedcba
//                    abcdefedcba
//                   abcdefgfedcba
//                  abcdefghgfedcba
//                 abcdefghihgfedcba
//                abcdefghigihgfedcba
//               abcdefghigkgihgfedcba
//              abcdefghigklkgihgfedcba
//             abcdefghigklmlkgihgfedcba
//            abcdefghigklmnmlkgihgfedcba
//           abcdefghigklmnonmlkgihgfedcba
//          abcdefghigklmnoponmlkgihgfedcba
//         abcdefghigklmnopqponmlkgihgfedcba
//        abcdefghigklmnopqrqponmlkgihgfedcba
//       abcdefghigklmnopqrsrqponmlkgihgfedcba
//      abcdefghigklmnopqrstsrqponmlkgihgfedcba
//     abcdefghigklmnopqrstutsrqponmlkgihgfedcba
//    abcdefghigklmnopqrstuvutsrqponmlkgihgfedcba
//   abcdefghigklmnopqrstuvwvutsrqponmlkgihgfedcba
//  abcdefghigklmnopqrstuvwxwvutsrqponmlkgihgfedcba
// abcdefghigklmnopqrstuvwxyxwvutsrqponmlkgihgfedcba
//abcdefghigklmnopqrstuvwxyzyxwvutsrqponmlkgihgfedcba
// abcdefghigklmnopqrstuvwxyxwvutsrqponmlkgihgfedcba
//  abcdefghigklmnopqrstuvwxwvutsrqponmlkgihgfedcba
//   abcdefghigklmnopqrstuvwvutsrqponmlkgihgfedcba
//    abcdefghigklmnopqrstuvutsrqponmlkgihgfedcba
//     abcdefghigklmnopqrstutsrqponmlkgihgfedcba
//      abcdefghigklmnopqrstsrqponmlkgihgfedcba
//       abcdefghigklmnopqrsrqponmlkgihgfedcba
//        abcdefghigklmnopqrqponmlkgihgfedcba
//         abcdefghigklmnopqponmlkgihgfedcba
//          abcdefghigklmnoponmlkgihgfedcba
//           abcdefghigklmnonmlkgihgfedcba
//            abcdefghigklmnmlkgihgfedcba
//             abcdefghigklmlkgihgfedcba
//              abcdefghigklkgihgfedcba
//               abcdefghigkgihgfedcba
//                abcdefghigihgfedcba
//                 abcdefghihgfedcba
//                  abcdefghgfedcba
//                   abcdefgfedcba
//                    abcdefedcba
//                     abcdedcba
//                      abcdcba
//                       abcba
//                        aba
//                         a
14号选手 2013-05-22
  • 打赏
  • 举报
回复
引用 12 楼 syrchina 的回复:
[quote=引用 10 楼 xuchao1229 的回复:] [quote=引用 3 楼 syrchina 的回复:] 消灭除法,效率翻翻: ...
位运算还真没有想到,不错的办法,体现出了c语言的底层操控能力[/quote] 嘿,我说您重点看6楼啊,您看看那时间复杂度是不是O(n)?[/quote] O(∩_∩)O~ 是准备看的,但是只能连续回复三次就不能回复了,csdn这个bug满坑爹的 你的这个是扩展的了啊,也很不错的,不过你是把它拆分成上下两部分来输出吧? 和到一起不是更好,就像我写的那个一样,用一个控制变量最后倒着输出回去
「已注销」 2013-05-22
  • 打赏
  • 举报
回复
引用 11 楼 xuchao1229 的回复:
[quote=引用 4 楼 cqdjyy01234 的回复:] 怎么看怎么觉得是压栈出栈
没有压栈出栈,没有用到递归哦,每一趟循环直接输出了,没有引用到别的函数或者模块[/quote] agree , 函数调用的时候才会入栈返回出栈
rickys2080 2013-05-22
  • 打赏
  • 举报
回复
引用 10 楼 xuchao1229 的回复:
[quote=引用 3 楼 syrchina 的回复:] 消灭除法,效率翻翻: ...
位运算还真没有想到,不错的办法,体现出了c语言的底层操控能力[/quote] 嘿,我说您重点看6楼啊,您看看那时间复杂度是不是O(n)?
14号选手 2013-05-22
  • 打赏
  • 举报
回复
引用 4 楼 cqdjyy01234 的回复:
怎么看怎么觉得是压栈出栈
没有压栈出栈,没有用到递归哦,每一趟循环直接输出了,没有引用到别的函数或者模块
14号选手 2013-05-22
  • 打赏
  • 举报
回复
引用 3 楼 syrchina 的回复:
消灭除法,效率翻翻:
#include <stdio.h>

int main(void)
{
    int flag=2;
    for(int i=1; i<=9&&i>0; i+=flag)
    {
        //打印空格
        for(int j=(9-i)>>1; j>0; j--)
            putchar(' ');
        //左边部分
        for(int k=1; k<=(i+1)>>1; k++)
        {
            putchar('a'+k-1);
        }
        //右边部分
        for(int m=(i-1)>>1; m>0; m--)
        {
            putchar('a'+m-1);
        }
        putchar('\n');
        if(i==9)
            flag=-2;
    }
    return 0;
}
位运算还真没有想到,不错的办法,体现出了c语言的底层操控能力
14号选手 2013-05-22
  • 打赏
  • 举报
回复
引用 2 楼 adlay 的回复:

int main(void)
{
	static char ccode[] = { 'e', 'd', 'c', 'b', 'a', ' ', ' ', ' '};
	for(int i = 0; i < 9; ++i)
	{
		for(int j = 0; j < 9; ++j)
		{
			int x = abs(4 - i) + abs(4 - j);
			putchar(ccode[x]);
		}

		putchar('\n');
	}
}
这个好是好,但是时间复杂度也达到了O(n^2)了
加载更多回复(8)

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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